2010-03-17 4 views

ответ

2

Отъезд: http://railscasts.com/episodes/186-pickle-with-cucumber

В частности, посмотреть на примере рассол, где он создает продукт:

Scenario: Show product 
    Given a product exists with name: "Milk", price: "2.99" 
    When I go to the show page for that product 
    Then I should see "Milk" within "h1" 
    And I should see "$2.99" 

Обратите внимание, как он относится к создаваемому продукту, как этот продукт. Пикл позаботится об этом для вас.

Удачи.

+0

И как это можно сделать без рассола? –

+0

В этом случае я бы написал пользовательский шаг, чтобы найти данный автомобиль по имени, а затем использовать shoulda, чтобы определить, является ли это совпадением. – Jonathan

3

Вы могли бы написать это нравится:

Given a car exists with title: "Toyota" 
When I go to path "/cars" 
And I follow "Toyota Page" 
Then I should be on the page for the car: "Toyota" 

Определение для последнего шага может быть:

Then /^I should be on the page for the car: "([^\"]*)"$/ do |car_title| 
    car = Car.find_by_title(car_title) 
    assert_equal "/cars/#{car.id}", URI.parse(current_url).path 
end 
+2

Согласился, что это лучший подход - шаги могут опираться на то, что было раньше, но не на то, что происходит. Вы можете сделать это еще проще, установив переменную экземпляра на шаге _Given_. (Например, '@car = [[something]]', а затем обратитесь к '@ car' позже в своих операторах _Then_, чтобы вам не пришлось снова находить его.) – SFEley