Czy moglibyście się podzielić doświadczeniami w zakresie technik BDD w kontekście testów funkcjonalnych/akceptacyjnych?
Biorąc na tapetę taki pakiet:
*AddNewBook.feature
*UpdateBookDescription.feature
*RemoveBook.feature
Ficzery 2 i 3 są zależne od wykonania ficzera nr 1. Powstaje problem, w jaki sposób to uniezależnić.
Dodatkowo, częstym wymaganiem przed dodaniem książki, jest stworzenie kategorii.
Do tej pory używałem kilku ścieżek, ale wszystkie miały spore minusy.
#0 Update bazy danych przed uruchomieniem testów. Mam wtedy pewność, że testy są niezależne.
Wady:
Duża komplikacja skryptów uzupełniających bazę. Czasochłonne. Jeżeli testuję aplikację podniesioną na mikroserwisach, z których każdy ma jedną lub więcej baz, poziom komplikacji rośnie.
#1 Przed rozpoczęciem testu, uzupełniam bazę danych korzystając z usług HTTP/SOAP/REST, zależnie od rodzaju aplikacji.
Wady:
Czasochłonność. Samo pisanie testów back-end to kupa kodu.
#2 Porządkuję (komponuje) zależne od siebie operacje w jeden ficzer, w którym scenariusze są od siebie zależne.
Wady:
Zaburzenie dobrych paktyk BDD.
Co wtedy z dodaniem kategorii przed dodaniem książki?
#3 Miks powyższych.