Muszę napisać testy jednostkowe i testy integracyjne dla projektu.
- Czy wszystkie testy powinny być umieszczone w jednym folderze testów ?
- A może testy jednostkowe i testy integracyjne powinny znajdować się w osobnym folderze testów ?
- Czy powinienem nawet umieścić je w osobnych projektach ?
Jeśli trzymam je razem, czy takie podejście ma jakieś zalety lub wady?
architecture
unit-testing
integration-tests
Ahmed Ragheb
źródło
źródło
Odpowiedzi:
Ogólnie: tak, należy umieścić testy integracyjne i testy jednostkowe w różnych folderach. Często programiści nie rysują wyraźnej granicy między tymi dwoma rodzajami testów, a jedynie piszą, jaki rodzaj testu jest użyteczny. Ale testy integracyjne są zwykle wolniejsze, ponieważ często obejmują:
W przeciwieństwie do tego, test jednostkowy wyśmiewałby wszelkie kosztowne operacje, więc testy jednostkowe mają tendencję do szybkiego uruchamiania (w rzeczywistości najwolniejszą częścią uruchamiania testu jest często sama platforma testowa).
Gdy programista pracuje w systemie, znajduje się w cyklu edycji-testu. Im szybciej otrzymują informacje zwrotne z testu i im krótszy jest cykl, tym bardziej mogą być wydajni. Dlatego chcemy przeprowadzić tylko ważny test, który szybko się zakończy. Kompletny zestaw testów byłby wykonywany tylko jako część procesu kontroli jakości, np. Na serwerze CI.
Oznacza to, że duże pakiety testowe powinny być podzielone na kategorie. Czy możemy wybrać testy jednostkowe tylko dla konkretnego komponentu? Czy możemy wykluczyć powolne testy? Jednym prostym sposobem na to jest utrzymanie różnych pakietów testowych w różnych katalogach. Jeśli masz tylko kilka testów, pojedynczy katalog również byłby OK, o ile programista może łatwo wybrać podzbiór testów.
Cokolwiek pozwala programiście szybko uzyskać informacje zwrotne, jest dobre. Najbardziej wszechstronny zestaw testów nie ma znaczenia, jeśli nie jest wykonywany regularnie.
Dalsza lektura:
źródło