#.net #unit-testing #xunit.net #xunit
#.net #модульное тестирование #xunit.net #xunit
Вопрос:
Если у меня есть класс со статическими фактами (методы тестирования) и у класса есть статический конструктор, вызывается ли конструктор для каждого факта или только один раз для всех фактов в классе? Я думаю, это зависит от того, как runner загружает / выгружает тестовые классы?
Ответ №1:
По опыту я знаю, что он вызывается только один раз для класса. Это то же самое, если вы используете статический класс (т. Е. класс настроек) в своих нестатических тестах (факты). Конструктор статического объекта вызывается только один раз для всего тестового класса.
Комментарии:
1. Спасибо! раз уж мы продолжили тему, есть идеи о том, что происходит с нестатическими методами / конструкторами? Создается ли экземпляр класса один раз, а затем вызывается каждый метод, или для каждого метода существуют отдельные экземпляры?
2. Класс, в котором находятся тесты, является конструктором, который затем уничтожается один раз для каждого теста. Итак, если в классе есть 10 фактов, он будет создан 10 раз, а затем 10 раз уничтожен. Любой нестатический объект будет воссоздан. Любой статический объект будет использован повторно.
Ответ №2:
Если что-либо (например. Факты) используйте статический метод или класс в первый раз, когда этот статический конструктор вызывается. Если нет ссылок на статический класс, статический конструктор не вызывается вообще. Если вы планируете запускать код до и после ТЕХ тестов (setup / dispose), я рекомендую использовать приспособления (см.https://xunit.net/docs/shared-context ).