Создает ли NUnit новый экземпляр класса test fixture для каждого содержащегося метода тестирования?
Как написано в довольно старой книге XUnit Patterns NUnit 2.0 не создавал новые тестовые приборы для каждого теста, и из-за этого, если тесты управляли некоторым состоянием прибора он стал общим и может вызвать различные плохие побочные эффекты.
Это все то же самое? Я попытался найти его на официальном сайте, но не смог, и havent использовал NUnit некоторое время.
Ответы
Ответ 1
Фиксатор создается один раз для всех тестов в этом крепете.
Для данного класса приборов метод FixtureSetup запускается один раз для всех тестов в приборе, а метод установки запускается один раз для каждого теста. Таким образом, любое состояние, которое должно быть reset, должно выполняться в методе установки (или TearDown, который запускается в конце каждого теста).
Ответ 2
Я обнаружил, что это проблема, которая затронула меня, а также нашла эту ссылку, которая немного напоминает историю;
https://blogs.msdn.microsoft.com/jamesnewkirk/2004/12/04/why-variables-in-nunit-testfixture-classes-should-be-static
Я думаю, что одним из самых больших сбоев, которые были сделаны, когда мы написали NUnit V2.0, было не создание нового экземпляра класса test fixture для каждого содержащегося метода тестирования.
Еще не проверено это в V3, чтобы увидеть, изменился ли его