Rails/Cucumber/Webrat: redirect_to, flash[:note] не работает
Я новичок в Огуреке, и я прошел через рейкаска Райана Бейтса. http://railscasts.com/episodes/155-beginning-with-cucumber
К сожалению, мой сценарий терпит неудачу там, где проходит Railscast. Конкретно это терпит неудачу на шаге: Then I should see "New Article Created."
Я подозреваю, что это может иметь какое-то отношение к различным версиям драгоценных камней, которые мы используем, в настоящее время у меня есть последние из каждого.
Это дает мне следующую ошибку:
* Тогда я должен увидеть "Новая статья создана". ожидается, что содержимое следующего элемента будет содержать "Новая статья создана":
Title
Content
(Spec:: Expectations:: ExpectationNotMetError)./features/step_definitions/web_steps.rb:144:in /^(?:|I )should see "([^\"]*)"$/'
features/manage_articles.feature:18:in
Тогда я должен увидеть "Новая статья создана". *
Это источник:
manage_articles.feature
Feature: Manage Articles Scenario: Create Valid Article Given I have no articles And I am on the list of articles When I follow "New Article" And I fill in "Title" with "Spuds" And I fill in "Content" with "Delicious potatoes" Then I should see "New Article Created." And I should see "Spuds" And I should see "Delicious potatoes" And I should have 1 article
articles_controller.rb
...
def create
@article = Article.create!(params[:article])
flash[:notice] = "New Article Created."
redirect_to articles_path
end
index.html.erb
<p><%= flash[:notice] %></p>
<% for article in @articles %>
<p><%=h article.title %></p>
<p><%=h article.content %></p>
<% end %>
<%= link_to "New Article", new_article_path %>
2 ответа
Я думаю, что вы должны добавить эту строку, прежде чем Then I should see "New Article Created."
:
And I press "Create"
Итак, вот ваш полный сценарий:
Feature: Manage Articles
Scenario: Create Valid Article
Given I have no articles
And I am on the list of articles
When I follow "New Article"
And I fill in "Title" with "Spuds"
And I fill in "Content" with "Delicious potatoes"
And I press "Create"
Then I should see "New Article Created."
And I should see "Spuds"
And I should see "Delicious potatoes"
And I should have 1 article
Хороший трюк для отладки огурца - это создать несколько шагов отладки.
В файле debug_steps.rb у меня есть следующее:
Then /^I debug$/ do
breakpoint; 0
end
Then /^I open the page$/ do
save_and_open_page
end
Обратите внимание, что save_and_open_page требует: Webrat: webrat (0.5.3) и Launchy: launchy (0.3.3)
Затем добавьте шаг:
Then I open the page
до Then I should see "New Article Created."
Чтобы увидеть, что происходит.
Удачи. Надеюсь это поможет.