Подтвердить что ты не робот

Проверить частные методы и внутренние классы с помощью NUnit?

Как проверить частные методы и внутренние классы с помощью NUnit?

4b9b3361

Ответ 1

Обычно я этого не делаю. Если вы тщательно протестируете общедоступные методы, использующие частные методы и внутренние классы, тогда вы сможете протестировать весь спектр частных функций, не подвергая его воздействию.

Ответ 2

Частные методы:

Если вы пытаетесь протестировать непубличные методы, это обычно означает, что вы делаете это неправильно.

Если есть функциональность, которую вы хотите протестировать, но не хотите публиковать ее в своем классе, код пытается вам что-то сказать. У вашего класса, вероятно, слишком много обязанностей. Вы должны серьезно подумать об извлечении этой частной функциональности в новый класс, написав тесты для нового класса, и чтобы ваш старый класс имел частный экземпляр нового класса.

Внутренние классы:

Этот пример более важен, особенно если вы пишете библиотеку классов для повторного использования другими пользователями. У вас могут быть классы, которые не предназначены для общего использования, но вы хотите написать модульные тесты для.

В этом случае посмотрите InternalsVisibleToAttribute.

Ответ 3

Как я справляюсь с этим, я делаю все свои методы общедоступными. Я знаю, что это звучит плохо, но медведь со мной мгновение.

При использовании IoC у вас есть интерфейс для каждого класса с некоторой логикой. Так что в основном вы кодируете интерфейс, а не фактическую реализацию. Это позволит вам пометить все методы общедоступными, и это не влияет на способ использования класса, за исключением того, что позволяет писать модульные тесты для каждого метода в этом классе.

Ответ 4

Вам нужно выставить средства для их вызова, возможно, через производный класс, специфичный для теста.