Zainspirowani komentarzem Huberta pod naszym ostatnim postem dotyczącym cucumbera, postanowiliśmy bliżej się przyjrzeć jego alternatywie, czyli Steakowi.

Co to?

Jednym zdaniem: Steak umożliwia pisanie testów akceptacyjnych w czystym Rubim.

Dla kogo?

Steak jest dla wszystkich, którym przeszkadza narzut związany z pisaniem testów przy użyciu Cucumbera. Jedną z największych zalet “ogórka”, jest jego naturalny język. Teoretycznie umożliwia on nietechnicznym osobom przygotowywanie scenariuszy, które po drobnych modyfikacjach mogą być przekształcone przez programistę w pełnoprawne testy akceptacyjne. Prawda jest jednak taka, że w większości przypadków scenariusze pisane są przez programistów dla programistów. Z takiego założenia wyszli twórcy Steaka. Pozbyli się więc pisania kroków i konieczności ich późniejszego definiowania, scenariusze są po prostu kodem. Oczywiście stek możemy podać z Capybarą (to coś pokrewnego do świnki morskiej), Webratem, Rspec, Factory Girl itp.

Jak to wygląda?

Przykładowy scenariusz cucumbera:

Scenario: User signs in with invalid email address
  Given a user exists with email: "email@person.com", password: "password"
  When I go to the sign in page
  And I fill in "email" with "somewrongemail"
  And I fill in "password" with "password"
  And I press "Login"
  Then I should see "Invalid e-mail address"

Ten sam scenariusz z użyciem steaka może mieć następującą składnię (doprawione capybarą):

scenario "User signs in with invalid email address" do
  User.create!(:email => "email@person.com", :password => "password"
  visit '/sign_in'
  fill_in "email", :with => "somewrongemail"
  fill_in "password", :with => "password"
  press "Login"
  page.should have_content("Invalid e-mail address")
end

Całkiem zgrabne, prawda?

Co dalej?

Wszystkich zainteresowanych odsyłamy na stronę projektu oraz polecamy szybki tutorial.

Mimo tego, że w naszym zespole scenariusze oglądają tylko programiści i scrum master, na razie nie zanosi się na to, żebyśmy zaczęli przyrządzać surowe steki. Przyzwyczaiłem się do składni Cucumbera, a przy użyciu pickle i odrobinie wprawy, można naprawdę szybko pisać scenariusze. Podoba mi się również warstwa abstrakcji, którą narzuca Cucumber, ponieważ pozwala mi lepiej skupić się na opisaniu i zrozumieniu zadania z punktu widzenia użytkownika. Widocznie jestem wegetarianinem.