首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails教程,第11章,练习7-破坏了我的rspec测试

Rails教程,第11章,练习7-破坏了我的rspec测试
EN

Stack Overflow用户
提问于 2011-01-30 16:17:42
回答 1查看 864关注 0票数 1

我正在阅读Michael关于Rails的优秀教程,但是我在第11章的练习7中遇到了问题。

这项工作是:

添加一个嵌套路由,以便/ user / 1 / microposts显示用户1的所有微博。(您还必须添加一个Micropost控制器索引操作和相应的视图。)

通过将我的routes.rb文件更改为:

代码语言:javascript
复制
resources :users do
  resources :microposts, :only => [:create, :destroy]
end

我能够在浏览器中成功地调用/user/1/micropost。然而,microposts_controller_spec.rb中的大多数测试现在都失败了。在运行自动测试时,我会收到“无路由匹配”错误。例如,第一个测试简单地读到:

代码语言:javascript
复制
it "should deny access to 'create'" do
  post :create
  response.should redirect_to(signin_path)
end

现在产生以下错误:

1) MicropostsController访问控制应该拒绝对'create‘Failure/Error的访问: post :create路由匹配{:controller=>“micropost”,:action=>"create"}

当我检查rake routes

,我发现这个条目:

代码语言:javascript
复制
user_microposts POST   /users/:user_id/microposts(.:format)     {:action=>"create", :controller=>"microposts"}

这说明这条路线确实存在。

在完成本教程时,还有其他人遇到过这个问题吗?一旦引入嵌套路由,是否需要对规范文件进行更改?Rspec与嵌套路由一起工作吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-30 21:14:34

因为这是一个嵌套的路由,所以您需要通过user_id

代码语言:javascript
复制
some_user = way_of_creating_a_user_goes_here
post :create, :user_id => some_user.id

RSpec将尝试在没有此参数的情况下转到/microposts路由。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4843926

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档