У меня есть желание сделать простой тест BDD.Значение не редактируется. Огурец + Capybara
У меня есть сценарий, как это:
Background: movies in database
Given the following movies exist:
| title | rating | director | release_date |
| Star Wars | PG | George Lucas | 1977-05-25 |
| Blade Runner | PG | Ridley Scott | 1982-06-25 |
| Alien | R | | 1979-05-25 |
| THX-1138 | R | George Lucas | 1971-03-11 |
Scenario: add director to existing movie
When I go to the edit page for "Alien"
And I fill in "Director" with "Ridley Scott"
And I press "Update Movie Info"
Then the director of "Alien" should be "Ridley Scott
У меня есть шаги, как это:
When /^(?:|I)go to (.+)$/ do |page_name|
visit path_to(page_name)
end
When /^(?:|I)fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
fill_in(field, :with => value)
end
When /^(?:|I)press "([^"]*)"$/ do |button|
click_button(button)
end
Then /^the director of "([^"]*)" should be "([^"]*)"$/ do |movie, director|
film = Movie.find_by_title(movie)
puts page.body
assert film.director.should == director
end
Моя проблема заключается в том, что значение директора не редактирования. И я не могу сравнить его с режиссером.
Другие значения присваиваются правильно, я могу, например, утверждать «film.rating.should == director» И получить то, что ожидалось, «Ридли Скотт» получил «R». Но для режиссера я получил нуль.
Это не проблема с представлением, для которого я создал поле для редактирования директора или db, где у меня есть столбец dirctor.
Моя интуиция заключается в том, что db не перезагружается, но я не мог найти команду для этого.
Я буду рад за любую помощь :)
Ответ:
Я забыл включить: директор в моей модели, и wasn`t состояния retrive аргумента. Thnx за любую помощь, так как я узнал от нее в любом случае.
вы мигрировали БД для окружения 'test', exaclty для' cucumber' среды? –
Я использовал rake db: test: подготовлен, и он все еще не передал отредактированное значение – Kazik
'RAILS_ENV = test rake db: migrate', вы используете test db с именем' test' –