Mam projekt API uruchomiony na localhost: 8000 podłączony do testowej bazy danych, a ja mam aplikację kątową front-end działającą na localhost: 9000. Jak zresetować bazę danych po uruchomieniu każdego testu z przodu? Używam Kątomierza do moich frontowych testów E2E. Nie chcę kpić z całego zaplecza. Mimo to sprawi to, że mój test będzie działał szybciej, jednak każda interakcja użytkownika spowoduje zmiany w stanach serwera, a następnie kilka kolejnych żądań do tych samych punktów końcowych serwera, upuszczanie tych punktów końcowych z różnymi zwrotami w różnych punktach może być zbyt dużym kodem niż po prostu rozmowa do prawdziwego serwera. Wolałbym zresetować bazę danych do stanu początkowego lub przepłukać wszystkie tabele.Resetuj oddzielną usługę backendu podczas testowania interfejsu frontowego
Jednym z możliwych sposobów na to jest napisanie mojego zestawu testów E2E z przodu w moim projekcie interfejsu API. Od teraz jest uruchamiany przez program testujący backend, może łatwo zresetować bazę danych przed każdym przypadkiem testowym. Ale wolałbym, aby moje testy były w moim projekcie front-end, ponieważ mój api będzie również obsługiwał innych klientów, nie tylko klienta przeglądarki. A ponieważ mój backend jest w php i używa Phununit do testowania, podczas gdy używam Protractor do przetestowania mojego front-endu, integracja go z backendem wydaje się być trochę nie na miejscu.
Czy napotkasz ten problem i jakie jest twoje rozwiązanie? Jak koordynujesz oba projekty w swoim teście E2E (lub integracji?)?
Sądzę, że jednym ze sposobów jest zapewnienie obsługi "resetowania" w backendach i wywołanie tego interfejsu API dla każdego nowego testu. –
@NewDev To brzmi jednak groźnie. Ale myślę, że możesz to zabezpieczyć, chroniąc go sprawdzaniem środowiska. Innym sposobem jest ustalenie sposobu resetowania bazy danych w wywołaniu zwrotnym onPrepare dla kątomierza. Zastanawiam się, czy są jeszcze lepsze sposoby. Dzięki za odpowiedź. – randomor
Absolutnie powinno to być tylko w twoim środowisku testowym, a nie w Prod :) Btw, to wciąż nie jest substytutem kpiny, tak jak nie zastępuje testów jednostkowych, ale na e2e czasami są potrzebne takie rzeczy. –