2014-01-13 3 views
3

Я настраиваю некоторые модульные тесты для проекта C#, над которым я работаю, и я решил использовать встроенный тестовый проект Visual Studio. Проблема в том, что я дал большинство своих классов в проекте по умолчанию, уровень доступа internal. Теперь они не могут быть достигнуты моим модульным тестовым проектом, потому что это другая сборка.Уровни защиты и модульные тесты Visual Studio с C#

Было бы тривиально просто сделать все мои классы в проекте public, чтобы проект модуля тестирования мог получить к ним доступ, но разве он не является идиоматическим для сохранения классов, которые используются только внутри проекта internal?

+2

Взгляните здесь http://stackoverflow.com/questions/7580710/is-it-considered-bad-practice-to-use-internalsvisibleto-for-unit-test-code – SWeko

ответ

3

вы можете сделать ваши внутренности видны тестового проекта - см here для получения дополнительной информации

0

Там встроена поддержка для этого, это называется частным Accessors. Читайте здесь, например: http://msdn.microsoft.com/en-us/library/bb385974%28v=vs.100%29.aspx

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

+0

Эта статья кажется серьезно устаревшей - она в последний раз обновлялось для VS 2005, упоминаемая в нем запись меню, похоже, не существует в VS2012, а http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute%28v=vs. 110% 29.aspx похоже на более простой подход. –

+0

Я уже обновил свою ссылку на VS2010. Но вы никогда не говорили о своей версии VS. Вы правы, кажется, что они на самом деле устарели. Другое решение будет работать нормально. – fejesjoco

Смежные вопросы