Unit тесты для C# проектов
Для юнит-тестов я использую NUnit, в отдельно созданом проекте. Проблема в том, что многие классы продакт-проекта — internal, а значит немогут быть вызваны из другого проекта. Немного погуглив, вижу, что люди используют в основном 2 подхода: либо через рефлекшн, либо Friend Assemblies.
Как решаете это вы?
5 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів#if TEST
код теста
#endif
тестирую паблик и internal методы (при этом private и другие как правило итак тестируются при тесте пабликов), кстати стараюсь все ненужное в паблике делать internal. Лично я против отдельного проекта как раз из-за интернала
Что бы не путались делаю java-like directory tree
src->
tets->
когда nant собирает, test можно удалить.
Это кстати один из множества подходов — один лагерь ратует за тестирование всего и вся, другой за тестирование лишь публичных вещей и т.п. Я принадлежу второму. Надеюсь холивара не будет?:)
те у тебя в проектах большинство классов public?
Минусы: — Увеличивается время билда. — Больше зависимостей у тестового проекта.
Плюсы:
+ Не надо вытаскивать публичный ключ чтобы указать сборку-друга (если Вы используете подписывание сборок).
+ Не надо мучаться с рефлекшеном.
P.S. Internal классы тестирую _очень_ редко. Private, protected члены класса не тестирую вообще.