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

Если тесты единиц будут в собственном проекте в решении .Net

Должен ли я запускать новый проект для своих модульных тестов? Это означает, что я получу два исполняемых файла правильно? Затем меня беспокоит организация пространства имен. Смогу ли я поместить unit test в те же пространства имен, что и те классы, которые они тестируют, хотя они являются частью другого проекта?

Возникает другой вопрос. Я знаю, что соглашение об именах имен имен принадлежит CompanyName.TechnologyName.Feautre.Design. Как я получу это правильно в макете решения/проекта? Имя решения = название компании, название проекта = название технологии?

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

4b9b3361

Ответ 1

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

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

Очень важно хранить модульные тесты в отдельных библиотеках, потому что это гарантирует, что вы проверите только публичный API вашего кода (тестирование черного ящика).

Я называю свои пространства имен, добавляя "UnitTest" после целевого пространства имен.

Ответ 2

Я имею тенденцию иметь конкретный тестовый проект/сборку на сборку. Контрольная сборка будет иметь то же имя, что и сборка, которую она должна тестировать, с добавлением .Test в имя и пространство имен.

Таким образом, вы сохраняете свои тесты изолированными, и они не развертываются с вашим производственным кодом.

Ответ 3

1 тестовый проект на одно решение с папками = > регрессия/интеграция/единица, в которой есть подпапки, которые "зеркалируют" архитектуру проекта/папки проекта.

Помните - тесты не являются вашим производственным кодом. Они должны быть разделены.

Ответ 4

Да. Ваши юнит-тесты должны быть отдельным проектом, который компилируется в собственную DLL.

Это означает, что вы не развертываете тестовый код вместе с вашим проектом - и это поощряет хороший дизайн (поскольку ваши тесты не могут видеть частные/внутренние свойства, вы, естественно, будете стремиться тестировать те биты вашего проекта, которые взаимодействуют с другие системы, вместо того, чтобы фиксироваться при тестировании каждой детали их внутренней реализации)

В терминах наименования мы обычно выбираем "кодовое имя" для каждого проекта - текущий под названием Занзибар - и затем заканчиваем такими проектами, как:

MyCompany.Zanzibar.Website (веб-приложение ASP.NET MVC)

MyCompany.Zanzibar.Website.Testing (содержит модульные тесты для веб-приложения MVC)

Ответ 5

Да. Создайте проект unit test для каждого проекта решения.

Будет только один исполняемый файл. Тесты модулей хранятся в DLL.

Почему бы не добавить 'UnitTests' в соответствующее пространство имен.