Załóżmy, że masz testy dla dwóch metod klasy. Pierwsza metoda zbiera dane z innej warstwy i umieszcza je w jakimś magazynie niezależnym od środowiska wykonawczego (takim jak tabela SQL), więc wszystkie dane obsługiwane przez ten test są zakodowane na stałe w teście. Druga metoda jest odpowiedzialna za pobieranie danych z miejsca, w którym opuściła je pierwsza metoda i przekształcanie jej w jakiś sposób (obliczenia, przenoszenie niektórych części w inne miejsca itp.).
Teraz ta druga metoda może mieć zakodowane dane wejściowe, takie jak pierwsza, lub można założyć, że dwa testy zostaną uruchomione sekwencyjnie i może zacząć od miejsca, w którym zakończył się pierwszy test, biorąc dane, które były naprawdę zapisane w pierwszym teście.
Jeśli wybrałeś drugą opcję, naprawdę miałbyś dobry pomysł, że obie metody dobrze się ze sobą bawią, jednak jeśli pierwszy test się nie powiedzie, wszystkie testy po nim się nie powiodą, pozbawiając korzyści z testowania, pomagając szybciej izolować błędy.
Jeśli wybrałeś pierwszą opcję, każda metoda byłaby izolowana i testowana niezależnie, ale tak naprawdę nigdy nie wiedziałbyś, że naprawdę mogą ze sobą poprawnie współpracować.
Która jest tutaj lepsza opcja? Czy istnieje jakaś alternatywa, na przykład posiadanie jednego testu dla każdej izolowanej metody z kodowaniem na twardo, a następnie większych testów, które zawierają obie metody w jednym?