Я объявил это в маршрутах:
resources :lessons
И я пытаюсь создать тест для редактирования урока, используя следующую функцию:
Feature: Edit Lesson
As a logged in user of the website
I want to edit a lesson
so I can change the values on it
Scenario: I am signed in and I edit an existing lesson
Given I am logged in
And I access the edit lesson page
When I edit an existing lesson with correct values
Then I should see a lesson edited message
И затем явыполните следующие шаги:
def valid_user
@user ||= { :name => "Testy McUserton", :email => "testy@userton.com",
:password => "please", :password_confirmation => "please", :description => "I love to play soccer"}
end
Given /^I am logged in$/ do
sign_up valid_user
end
Вот где у меня есть сомнения:
And /^I access the edit lesson page$/ do
visit edit_lesson_path(???)
end
Путь к уроку редактирования ожидает идентификатор, поэтому я полагаю, что ядолжен «создать» урок, но для его создания необходим user_id текущего пользователя в сеансе.Как я должен делать это в огурце + капибара?Я использую Devise для управления аутентификацией, сессиями пользователей и т. Д.
Вот как я создаю новый урок и почему мне как-то нужен user_id:
def create
@lesson = Lesson.new(params[:lesson])
@lesson.user_id = current_user.id
if @lesson.save
redirect_to lesson_path(@lesson)
flash[:notice] = "Congrats! Lesson has been created successfully."
else
render :action => "new"
end
end