Почему Private Accessor не рекомендуется?
Раньше это была причина номер один для нас, чтобы выбрать MSTest среди других, к которым мы могли получить доступ и протестировать частные методы. Теперь, когда частные средства доступа устарели в Visual Studio 2012. Кто-нибудь знает, почему Microsoft принимает такое решение? Это потому, что не стоит проверять частные методы?
Кроме того, если мне все еще нужно тестировать мои личные методы, как я могу это сделать в VS 2012 и более поздних версиях?
1 ответ
Согласно статье VS Team Generation of Private Accessors... эта функция устарела в 2010 году по следующим причинам:
Нехватка ресурсов и времени. В этом выпуске основное внимание уделялось улучшению работы ручных тестировщиков, поэтому приоритет для функций генерации кода и публикации был снижен. Также были другие проблемы с используемыми нами функциями публикации, которые не были устранены.
Новые возможности языковых групп. Поскольку языковые группы внесли изменения в типы проектов и языки, мы не смогли отреагировать на внесенные изменения и не смогли работать с новыми функциями, которые они представили.
(Дополнительные исторические заметки можно найти с помощью следующего поиска: mstest, почему частные средства доступа запрещены сайтом: blogs.msdn.com).
Для вашей второй части вопроса - как правило, вам не нужно тестировать приватные методы. Если вы действительно чувствуете необходимость выставлять такие методы для тестирования - подумайте, если маркировка internal
и используя "друг" (InternalsVisibleToAttribute
) будет работать для вашего случая.