Chociaż istnieją sposoby, aby nie przeprowadzać testów jednostkowych, jaka jest wartość sprawdzania w nieudanych testach jednostkowych?
Posłużę się prostym przykładem: rozróżnianie wielkości liter. W obecnym kodzie rozróżniana jest wielkość liter. Prawidłowym wejściem do metody jest „Cat” i zwraca ona wyliczenie Animal.Cat. Jednak pożądana funkcjonalność metody nie powinna uwzględniać wielkości liter. Więc jeśli opisana metoda zostanie przekazana jako „cat”, może zwrócić coś takiego jak Animal.Null zamiast Animal.Cat, a test jednostkowy zakończy się niepowodzeniem. Chociaż prosta zmiana kodu sprawiłaby, że to zadziałałoby, bardziej skomplikowany problem może zająć tygodnie, ale identyfikacja błędu za pomocą testu jednostkowego może być mniej złożonym zadaniem.
Aktualnie analizowana aplikacja ma 4 lata kodu, który „działa”. Jednak ostatnie dyskusje dotyczące testów jednostkowych wykazały wady w kodzie. Niektórzy potrzebują tylko jawnej dokumentacji implementacyjnej (np. Rozróżnia małe lub duże litery) lub kodu, który nie wykonuje błędu w oparciu o to, jak jest aktualnie wywoływany. Ale testy jednostkowe można tworzyć, wykonując określone scenariusze, które spowodują wyświetlenie błędu i będą prawidłowymi danymi wejściowymi.
Jaka jest wartość sprawdzania w testach jednostkowych, które wykonują błąd, dopóki ktoś nie będzie w stanie naprawić kodu?
Czy ten test jednostkowy powinien być oznaczony ignorowaniem, priorytetem, kategorią itp., Aby ustalić, czy kompilacja zakończyła się powodzeniem na podstawie wykonanych testów? Ostatecznie należy utworzyć test jednostkowy, aby wykonać kod, gdy ktoś go naprawi.
Z jednej strony pokazuje, że zidentyfikowane błędy nie zostały naprawione. Z drugiej strony, w dziennikach mogą pojawić się setki nieudanych testów jednostkowych, a przeglądanie tych, które powinny zakończyć się niepowodzeniem, a awarie spowodowane przez sprawdzenie kodu byłyby trudne do znalezienia.