Причины за или против использования частичных классов для тестирования? - PullRequest
3 голосов
/ 09 ноября 2010

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

Я собираюсь начать:

pro: частные методы могут быть проверены
con: TDD больше не возможно

Что еще?

Ответы [ 2 ]

6 голосов
/ 09 ноября 2010

Con: либо вам нужно протестировать сборку, отличную от той, которую вы отправляете, либо вы получите код (и участников) юнит-теста в вашем отгрузочном коде.

В общем, для меня это звучит как очень плохая идея.

Я обычно работаю над отдельными производственными / тестовыми проектами, где [InternalsVisibleTo] позволяет тестировать внутренние методы (что противоречит догме некоторых людей, но мне кажется прагматичным).

2 голосов
/ 09 ноября 2010

Я бы сказал, что возможность тестировать частные методы - это «мошенничество», поскольку оно может стимулировать наращивание нового кода в существующем классе. Если частная логика настолько сложна, что ей нужны специальные тесты (помимо общедоступных), тогда есть большая ценность в том, чтобы извлечь эту логику в виде отдельного класса с публично тестируемым интерфейсом. Что касается пограничных случаев, я осторожно согласен с подходом Джона, заключающимся в использовании внутренних методов (просто будьте осторожны с тем, как сильно они раскрываются.)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...