Создает ли NUnit новый экземпляр класса тестовых приборов для каждого содержащегося в настоящее время метода тестирования? - PullRequest
20 голосов
/ 02 августа 2011

Как написано в довольно старой книге Шаблоны XUnit NUnit 2.0 не создавал новые тестовые приборы для каждого теста, и из-за этого, если тесты манипулировали каким-либо состоянием прибора, он становился общим и мог вызвать различные плохие побочные эффекты.

Это все то же самое? Я пытался найти его на официальном сайте, но не смог, и некоторое время не использовал NUnit.

Ответы [ 2 ]

17 голосов
/ 02 августа 2011

Устройство создается один раз для всех тестов в этом устройстве.

Для данного класса прибора метод FixtureSetup запускается один раз для всех тестов в приборе, а метод Setup запускается один раз для каждого теста. Таким образом, любое состояние, которое необходимо сбросить, должно быть выполнено с помощью метода Setup (или TearDown, который запускается в конце каждого теста).

4 голосов
/ 29 апреля 2016

Я обнаружил, что это проблема, которая затронула меня, а также нашел эту ссылку, которая предоставляет немного истории этой проблеме; https://blogs.msdn.microsoft.com/jamesnewkirk/2004/12/04/why-variables-in-nunit-testfixture-classes-should-be-static

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

Еще не проверял это в V3, чтобы увидеть, изменилось ли оно

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