Możliwe jest przetestowanie metod prywatnych przez zadeklarowanie zestawu testowego jako zestawu znajomego testowanego zestawu docelowego. Zobacz poniższe łącze, aby uzyskać szczegółowe informacje:
http://msdn.microsoft.com/en-us/library/0tke9fxk.aspx
Może to być przydatne, ponieważ w większości przypadków oddziela kod testowy od kodu produkcyjnego. Sam nigdy nie korzystałem z tej metody, ponieważ nigdy nie znalazłem takiej potrzeby. Przypuszczam, że możesz go użyć do wypróbowania ekstremalnych przypadków testowych, których po prostu nie możesz odtworzyć w swoim środowisku testowym, aby zobaczyć, jak obsługuje to Twój kod.
Jak już powiedziano, naprawdę nie powinieneś testować prywatnych metod. Bardziej niż prawdopodobne jest, że chcesz zrefaktoryzować swój kod na mniejsze bloki konstrukcyjne. Jedna wskazówka, która może ci pomóc, gdy przyjdziesz do refaktoryzacji, to spróbować pomyśleć o domenie, do której odnosi się twój system, i pomyśleć o „prawdziwych” obiektach zamieszkujących tę domenę. Twoje obiekty / klasy w twoim systemie powinny odnosić się bezpośrednio do rzeczywistego obiektu, co pozwoli ci wyodrębnić dokładne zachowanie, które powinien zawierać obiekt, a także ograniczy odpowiedzialność za obiekty. Będzie to oznaczać, że refaktoryzujesz się logicznie, a nie tylko po to, aby umożliwić przetestowanie określonej metody; będziesz mógł przetestować zachowanie obiektów.
Jeśli nadal czujesz potrzebę testowania wewnętrznego, możesz również rozważyć mockowanie w testowaniu, ponieważ prawdopodobnie będziesz chciał skupić się na jednym fragmencie kodu. Mockowanie polega na wstrzyknięciu do niego zależności obiektów, ale wstrzyknięte obiekty nie są „rzeczywistymi” ani obiektami produkcyjnymi. Są to pozorne obiekty, których zachowanie zostało zakodowane na stałe, aby ułatwić wyodrębnienie błędów behawioralnych. Rhino.Mocks to popularny, darmowy framework do mockowania, który zasadniczo zapisze obiekty za Ciebie. TypeMock.NET (produkt komercyjny z dostępną edycją społeczności) to bardziej zaawansowana struktura, która może symulować obiekty CLR. Bardzo przydatne do mockowania klas SqlConnection / SqlCommand i Datatable na przykład podczas testowania aplikacji bazy danych.
Mam nadzieję, że ta odpowiedź dostarczy Ci nieco więcej informacji, które pomogą Ci uzyskać ogólne informacje o testach jednostkowych i pomogą Ci uzyskać lepsze wyniki z testów jednostkowych.