/ / Testowanie stanu a testy behawioralne w kodzie, który nie przekracza granic integracji - testy jednostkowe, stan, zachowanie

Testowanie stanu i zachowania na kodzie, które nie przekracza granic integracji - testowanie jednostkowe, stan, zachowanie

Mam metodę, która ma przekazane niektóre obiekty danychdo niego wykonuje obliczenia w celu wypełnienia wcześniej pustych pól na obiektach na podstawie innych pól, a następnie odsyła wyniki. Ta metoda tak naprawdę nie przekracza granic integracji - obiekty danych to encje z dość złożonym drzewem zależności od innych encji, ale z perspektywy tej metody są to po prostu obiekty ze stanem (dziękuję ORM).

Wydaje mi się, że testy jednostkowe takwymagają sprawdzenia stanu - skonfiguruj dane, uruchom kod, aby wykonać obliczenia i sprawdź wyniki. Czy jest to uzasadniony przypadek ignorowania tego, co wydaje się być ogólną radą, że testy powinny sprawdzać zachowanie, a nie stan? A może trochę źle czytam literaturę opartą na testach?

Odpowiedzi:

2 dla odpowiedzi № 1

Powiedziałbym, że testujesz zachowanie metody wykonującej obliczenia, więc to nie jest problem.

Niektórzy mogą sugerować, że zachowanie w oddzielnej metodzie (jako usługa), a nie w klasach, które przechowują dane, może oznaczać zapach kodu, ale to inna sprawa.


0 dla odpowiedzi nr 2

Zachowanie polega na tym, że otrzymujesz dany stan wejściowyoczekiwany stan wyjścia. Testy jednostkowe powinny utworzyć obiekty fikcyjne (prawdopodobnie makiety) o znanym stanie, uruchomić testowaną metodę, a następnie sprawdzić, czy wyjście (w tym przypadku jest to stan parametru wejściowego) jest poprawne.