describe
, context
, feature
, scenario
: Jaka jest różnica (e) spośród czterech i kiedy mogę używać każdego z nich?
rspec
rspec2
rspec-rails
Mike Glaz
źródło
źródło
Dziś rano, pisząc specyfikacje, miałem to samo pytanie. Zwykle głównie używam
describe
i nie myślę o tym specjalnie, ale dzisiejszego ranka miałem do czynienia z wieloma przypadkami i różnymi specyfikacjami dla jednego modułu, więc musiało to być zrozumiałe dla następnego programisty, który przeczyta te specyfikacje. Zapytałem więc Google o to i znalazłem to: opis a kontekst w rspec , którego odpowiedź uważam za całkiem interesującą:Opierając się na tej zasadzie, napiszesz taką specyfikację:
Nie jestem pewien, czy jest to ogólnie przyjęta zasada, ale uważam to podejście za jasne i dość łatwe do zrozumienia.
źródło
Rozszerzając doskonałą odpowiedź Pierre'a , zgodnie z dokumentami :
Tak więc dla osób zaznajomionych z terminami Mocha opisującymi i to (które lepiej nadają się do opisywania zachowania testu z perspektywy użytkownika, stąd Mocha działa przede wszystkim jako front testowy framework), możesz:
describe
i /it
lub innego parowaniait
wewnątrzcontext
bloku, który wymaga wielu potwierdzeń / testów w określonym stanie aplikacjiKorzystając z drugiej opcji, nadal można kierować się intencją „... zawinąć [ping] zestaw testów dla jednej funkcjonalności w tym samym stanie”.
Twoje testy mogą więc wyglądać tak:
W ten sposób
feature
całkowicie pomijasz słowo kluczowe, którego możesz chcieć użyć do określonych funkcji interfejsu użytkownika lub jeśli wykonujesz FDD (programowanie oparte na funkcjach), co może być dla niektórych niewygodne. Poproś zespół programistów o wkład tutaj.Uwaga: nie zawsze stosujemy się do standardów branżowych, wyobraź sobie, że wszystkie nasze testy wzorowaliśmy na filozofii Volkswagena?
źródło