ruby-on-rails-3 – 使用rspec测试rails3中资源的成员路由
发布时间:2020-12-16 19:18:10 所属栏目:百科 来源:网络整理
导读:我正在创建一个允许用户参加考试的应用程序.考试对象有很多问题,我希望用户分两部分参加考试.为了实现这个工作流程,我在config / routes.rb中创建了以下路由: resources :exam do member do get 'get_part1' put 'put_part1' get 'get_part2' put 'put_part
我正在创建一个允许用户参加考试的应用程序.考试对象有很多问题,我希望用户分两部分参加考试.为了实现这个工作流程,我在config / routes.rb中创建了以下路由:
resources :exam do member do get 'get_part1' put 'put_part1' get 'get_part2' put 'put_part2' end end 因此,当用户发出GET / exam /:id / get_part1时,他们会看到第一组问题等等……我已经完成了所有这些工作,现在我正在尝试为它编写测试 – 我知道这是倒退但是我花了一段时间来弄清楚复杂的形式和东西.我想测试除非您是已登录的用户,否则无法访问考试控制器.这对于new和create来说是直截了当的,但是我无法弄清楚如何测试嵌套成员.这是我到目前为止所尝试的内容: before(:each) do @exam = Exam.create end it "should deny access to 'get_part1'" do get get_part1_exam_path(@exam) response.should redirect_to(signin_path) end 但是,此测试失败,并出现以下错误: Failure/Error: get get_part1_exam_path(@exam) ActionController::RoutingError: No route matches {:controller=>"exams",:action=>"/exams/1/get_part1"} 任何帮助将不胜感激.谢谢! 解决方法
试试那个:
get :get_part1,:id => @exam (or @exam.id) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |