Warte uwagi: Steak
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.