2015-01-19 5 views
6

Разделяет экземпляр Fixture по нескольким методам тестирования - хорошая практика?Совместное использование AutoFixture в тестах

Или лучше создать новый экземпляр Fixture для каждого метода тестирования?

Какая практика? Будет хорошо, если вы можете предоставить мне источник, на котором он анти-шаблон.

ответ

7

AutoFixture берет свое название от Fixture шаблона:.

«тест арматура это все, что нам нужно иметь в месте для того, чтобы запустить тест и ожидать конкретный результат [...] Настройка тестового прибора является первой фазой Four-Phase Test. "

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

AutoFixture был явно разработан для предоставления библиотеки многократного использования для создания Fixtures вместо того, чтобы вручную вводить код Fixture Objects для каждого нового типа тестового контекста, который вам нужно создать.

Есть люди, которые создают один объект (AutoFixture) Fixture и делят его по нескольким методам тестирования, но я никогда не понимал, почему они это делают; он почти побеждает цель AutoFixture.

Тем не менее, если вы найдете такую ​​настройку полезной, кем я должен сказать вам прекратить это делать? Независимо от того, что плавает ваша лодка ... Тем не менее, AutoFixture был разработан с явным вариантом использования одного экземпляра Fixture для каждого тестового метода, и я не видел никаких преимуществ для этого.

6

лучше практика воспользоваться AutoFixture.Xunit или AutoFixture.NUnit2 и избежать создания Fixture экземпляра, внутри или снаружи методов испытаний или функций.

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

Использование нового экземпляра класса Fixture позволяет вам контролировать, как AutoFixture ведет себя в каждом конкретном тесте, так как вы можете применить к нему настройки, и они не будут влиять на все остальные тесты.

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