Jakiś czas temu zacząłem sobie dłubać w Railsach, tworzę już jakieś proste rzeczy, ale brakuje temu jakichś przemyślanych testów. Niby wiem o Cucumberze i RSpecu (tyle co w railstutorial.org), coś tam o TDD i BDD czytałem, ale tak naprawdę to nie mam pojęcia jak w praktyce wdrażać jakieś bardziej sensowne/przydatne/skomplikowane testy.
Najbardziej zianteresował mnie Cucumber i BDD. Samo pisanie scenariuszy jest dosyć proste do ogarnięcia z kilku tutoriali + github, ale gubię się przy implementowaniu nawet prostych scenariuszy w Rubim.
Przykładowo mam scenariusz “User should be created” - implementacje tego można wykombinować samemu, nawet jeśli idealna nie będzie to będzie działać.
Ale już cokolwiek mniej trywialnego sprawia problem.
Znacie jakieś fajne materiały dot. Cucumbera/BDD, w szczególności nastawione na implementacje testów? Może trochę przykładowego kodu, bo czytałem kilka tutoriali nt. Cucumbera, ale wszystkie rozpisują się nt. teorii tworzenia testów, coś o scenariuszach, a zaimplementowany jest tylko jakiś trywalny scenariusz.
Ja bym zaczął od tego, że IMO nie warto się pchać w cucumbera. To jest fajna sprawa dla większego teamu, gdzie testy pisze osoba nie koniecznie techniczna. Dla programisty to jest męczarnia na dłuższą mete, bo więcej się napiszesz niż to warte. Rspec + capybara wystarczy Ci w zupełności do wszystkich typów testów.
Dla ułatwienia na początku możesz zainstalować sobie gema simplecov, który pokazuje pokrycie kodu testami i po prostu starać się pokryć jak najwięcej. Przy okazji trywialnych testów na pewno wpadniesz też na wiele ambitniejszych, które by się przydały. ( w tym przypadku mówie o pisaniu testów po kodzie )
Ja dodam coś od siebie, sam niedawno miałem sporo dylematów z testami, w sumie nadal mam, ale co zdążyłem się nauczyć to to że testy muszą być proste i czytelne, tyle w teorii a w praktyce trudne do załapania dla kogoś zupełnie początkującego, dlatego myślę że dobrym sposobem jest code review. Po pierwsze zacznij pisać testy i po drugie pokazuj komuś bardziej doświadczonemu kod, myślę że na forum znajdzie się ktoś kto zerknie doświadczonym okiem i wskaże drogę…