W .net, inaczej niż w Javie, metody nie są domyślnie wirtualne. Aby korzystać z większości pozornych struktur obiektów, musisz albo oznaczyć metody, których chcesz użyć w swoim symulatorze jako wirtualne na "prawdziwym" obiekcie, albo musisz mieć interfejs, który możesz udawać, że testowana klasa będzie zaakceptować zamiast wdrożenia.Szydercze obiekty - zadeklaruj wszystkie metody jako wirtualne lub użyj interfejsu?
Wygląda na to, że źle się układa i zaznacza każdą metodę jako wirtualną, ale wygląda na to, że definiuje interfejs dla każdej klasy.
Co najlepiej zrobić?
Podoba mi się pomysł traktowania podwójnych testów jako planowanych implementacji interfejsu. Nie jestem pewien, czy podoba mi się uczynienie innych wirtualnymi, chyba że są częścią projektu klasowego, ale potem znowu, jeśli okaże się, że trzeba wyśmiewać coś później, zmieniając kod właśnie za to śmierdzi. – dnewcome