Я создаю приложение, которое позволит пользователю сдать экзамен. У объекта экзамена есть много вопросов, и я хочу, чтобы пользователь сдал экзамен в двух частях. Для реализации этого рабочего процесса я создал следующие маршруты в config / rout.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, ему показывают первый набор вопросов и т. Д. У меня все это работает, и теперь я пытаюсь написать тесты для него - я знаю, это задом наперед, но мне потребовалось некоторое время, чтобы понять сложные формы и прочее. Я хочу проверить, что вы не можете получить доступ к экзаменационному контроллеру, если вы не вошли в систему. Это просто для новых и творческих, но у меня возникли проблемы с выяснением, как проверить вложенные члены. Вот что я пробовал до сих пор:
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"}
Любая помощь будет принята с благодарностью. Спасибо!