Как проверить частные методы и внутренние классы с помощью NUnit?
Проверить частные методы и внутренние классы с помощью NUnit?
Ответ 1
Обычно я этого не делаю. Если вы тщательно протестируете общедоступные методы, использующие частные методы и внутренние классы, тогда вы сможете протестировать весь спектр частных функций, не подвергая его воздействию.
Ответ 2
Частные методы:
Если вы пытаетесь протестировать непубличные методы, это обычно означает, что вы делаете это неправильно.
Если есть функциональность, которую вы хотите протестировать, но не хотите публиковать ее в своем классе, код пытается вам что-то сказать. У вашего класса, вероятно, слишком много обязанностей. Вы должны серьезно подумать об извлечении этой частной функциональности в новый класс, написав тесты для нового класса, и чтобы ваш старый класс имел частный экземпляр нового класса.
Внутренние классы:
Этот пример более важен, особенно если вы пишете библиотеку классов для повторного использования другими пользователями. У вас могут быть классы, которые не предназначены для общего использования, но вы хотите написать модульные тесты для.
В этом случае посмотрите InternalsVisibleToAttribute.
Ответ 3
Как я справляюсь с этим, я делаю все свои методы общедоступными. Я знаю, что это звучит плохо, но медведь со мной мгновение.
При использовании IoC у вас есть интерфейс для каждого класса с некоторой логикой. Так что в основном вы кодируете интерфейс, а не фактическую реализацию. Это позволит вам пометить все методы общедоступными, и это не влияет на способ использования класса, за исключением того, что позволяет писать модульные тесты для каждого метода в этом классе.
Ответ 4
Вам нужно выставить средства для их вызова, возможно, через производный класс, специфичный для теста.