Uczę się TDD przy użyciu c #, o ile wiem, test powinien kierować rozwojem , to znaczy najpierw napisać test zakończony niepowodzeniem po napisaniu minimalnego kodu, aby przejść test, a następnie dokonać refaktoryzacji.
Mówi się również, że „ Program do interfejsu, a nie implementacja ”, więc najpierw napisz interfejs . Tu zaczyna się moje zamieszanie. Jeśli najpierw piszę Interfejs, narusza to dwie rzeczy
Kod napisany dla interfejsu nie jest sterowany przez test .
Nie jest to absolutne minimum, oczywiście, że mogę napisać to za pomocą prostej klasy.
Czy powinienem zacząć od napisania testów interfejsu? bez żadnej implementacji, co zamierzam przetestować?
Jeśli to pytanie brzmi głupio przepraszam za to, ale jestem całkowicie zdezorientowany. Być może biorę rzeczy zbyt dosłownie.
contract
. Może to być na przykład klasa abstrakcyjna, chociaż nie powinna to być wirtualna klasa / metoda, ponieważ nie powinno być możliwości jej utworzenia.
interface
do wszystkiego. Aclass
zapewnia również interfejs, ponieważ można ukryć szczegóły implementacji wprivate
zmiennych.