Rails / Cucumber / Webrat: redirect_to, flash [: notice] не работает

Я новичок в Cucumber и проходил через железнодорожный выпуск Райана Бейтса. 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

article_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 %>

person Evan    schedule 25.01.2010    source источник


Ответы (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
person kak    schedule 26.01.2010
comment
Спасибо! Глупая ошибка с моей стороны. - person Evan; 26.01.2010

Хороший трюк для отладки огурца - создать несколько шагов отладки.

В файле 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."

Чтобы увидеть, что происходит.

Удачи. Надеюсь это поможет.

person Jonathan    schedule 26.01.2010
comment
Спасибо! Если бы у меня было это, мне не нужно было бы публиковать. - person Evan; 26.01.2010
comment
Большое спасибо за эти советы !! - person benoitr; 03.11.2010