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.



Komentarze

  1. Łukasz 13.07.2010

    Comment Arrow

    Lepsze od ogórka. Dlaczego? Bo to po prostu ładniejszy RSpec 🙂

    A tak na poważnie – przed Ogórkiem powstrzymuje mnie to, o czym sam wspominasz: user stories piszą (u nas) tylko programiści i scrum master. Jeśli ktoś inny coś wrzuci do Pivotal’a to od razu trzeba to poprawić bo zazwyczaj nie jest to dobry scenariusz.

    Pobawię się tym jutro.


  2. Ravicious 13.07.2010

    Comment Arrow

    Wygląda nieźle, ale pozostaje kwestia spięcia tego z takimi rzeczami jak autotest, hydra lub spork.




O autorze

Aleksander Dąbrowski

Od 2008 zawodowo programuje w Ruby i Railsach. Jest maniakiem prostych i eleganckich rozwiązań, nie boi się usuwania brzydkiego kodu. Uwielbia dzielić się wiedzą, a w wolnych chwilach naprawia samochody.