Можна перевірити приватні методи, оголосивши свою тестову збірку як дружню збірку цільової збірки, яку ви тестуєте. Детальніше дивіться за посиланням нижче:
http://msdn.microsoft.com/en-us/library/0tke9fxk.aspx
Це може бути корисно, оскільки воно здебільшого відокремлює ваш тестовий код від виробничого коду. Я ніколи не використовував цей метод сам, як ніколи не знайшов у ньому потреби. Я припускаю, що ви можете використовувати його для перевірки екстремальних тестових випадків, які ви просто не можете повторити у своєму тестовому середовищі, щоб побачити, як ваш код обробляє його.
Як вже було сказано, вам дійсно не потрібно тестувати приватні методи. Ви більше, ніж подібний, хочете перефактурувати свій код на менші будівельні блоки. Один із підказок, який може допомогти вам, коли ви приїдете до рефактора, - спробувати думати про домен, до якого стосується ваша система, і подумати про «реальні» об’єкти, що населяють цей домен. Ваші об'єкти / класи у вашій системі повинні мати безпосереднє відношення до реального об'єкта, що дозволить вам виділити точну поведінку, яку повинен містити об’єкт, а також обмежить обов'язки об'єктів. Це буде означати, що ви переробляєте логічно, а не просто, щоб зробити можливість протестувати певний метод; ви зможете перевірити поведінку об’єктів.
Якщо ви все ще відчуваєте необхідність перевірити внутрішню, то, можливо, ви також хочете розглянути глузування під час тестування, оскільки ви, як правило, хочете зосередитись на одному фрагменті коду. Знущання - це те, коли ти вводиш у нього залежність від об'єктів, але об'єкти, які вводяться, не є "реальними" або виробничими об'єктами. Це фіктивні об'єкти з жорстко кодованою поведінкою, щоб полегшити виділення поведінкових помилок. Rhino.Mocks - популярний фреймворк для вільних глузувань, який по суті буде писати об’єкти для вас. TypeMock.NET (комерційний продукт із доступною версією для спільноти) є більш потужною основою, яка може знущатися з об’єктів CLR. Дуже корисно для знущань із класів SqlConnection / SqlCommand і Datatable, наприклад, при тестуванні додатка бази даних.
Сподіваємось, що ця відповідь дасть вам трохи більше інформації, щоб повідомити вас про тестування підрозділів загалом та допоможе отримати кращі результати від тестування підрозділу.