spi*_*ock 8 routing rspec ruby-on-rails-3
我正在创建一个允许用户参加考试的应用程序.考试对象有很多问题,我希望用户分两部分参加考试.为了实现这个工作流程,我在config/routes.rb中创建了以下路由:
resources :exam do
member do
get 'get_part1'
put 'put_part1'
get 'get_part2'
put 'put_part2'
end
end
Run Code Online (Sandbox Code Playgroud)
所以,当用户发出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
Run Code Online (Sandbox Code Playgroud)
但是,此测试失败,并出现以下错误:
Failure/Error: get get_part1_exam_path(@exam)
ActionController::RoutingError:
No route matches {:controller=>"exams", :action=>"/exams/1/get_part1"}
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激.谢谢!
Mar*_*ske 13
试试那个:
get :get_part1, :id => @exam (or @exam.id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2040 次 |
| 最近记录: |