Tak, jesteś - po pierwsze, zapomnij o testowaniu jednostkowym jako przyczynie zaprojektowania kodu wokół narzędzi do testowania jednostkowego, nigdy nie jest dobrym pomysłem zginanie projektu kodu w celu dopasowania go do sztucznego ograniczenia. Jeśli twoje narzędzia zmuszają cię do tego, zdobądź lepsze narzędzia (np. Microsoft Fake / Moles, które pozwalają na wiele więcej opcji tworzenia fałszywych obiektów).
Na przykład, czy podzieliłbyś swoje klasy na tylko publiczne metody tylko dlatego, że narzędzia testowe nie działają z metodami prywatnymi? (Wiem, że panuje mądrość udawania, że nie trzeba testować prywatnych metod, ale czuję, że jest to reakcja na trudność w wykonaniu obecnych narzędzi, a nie prawdziwa reakcja na brak konieczności testowania prywatnych).,
W sumie sprowadza się to do tego, jakim jesteś TDDerem - „mockist”, jak to opisuje Fowler , musi zmienić kod, aby pasował do narzędzi, których używają, podczas gdy „klasyczni” testerzy tworzą testy, które są bardziej zintegrowane z naturą (tj. przetestuj klasę jako jednostkę, a nie każdą metodę), więc potrzeba interfejsów jest mniejsza, zwłaszcza jeśli używasz narzędzi, które mogą kpić z konkretnych klas.