Продление жизненного цикла и состояния в JUnit 5

Руководство пользователя содержит следующее:

Обычно расширение создается только один раз.

Не очень понятно, когда расширение может быть создано много раз? Я поддерживаю набор тестов с несколькими расширениями, и каждое расширение сохраняет свое состояние в полях классов. Все работает нормально, но могу ли я рассчитывать на это, или я должен рефакторинг этого кода, чтобы использовать ExtensionContext.Store?

0 ответов

Обычно расширение создается только один раз. Таким образом, возникает вопрос: как сохранить состояние от одного вызова расширения до следующего?

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

Несколько экземпляров расширения могут быть созданы, когда тест использует программную регистрацию расширения@RegisterExtension). В таком случае тестовый класс создает свой собственный экземпляр расширения. JUnit не может повторно использовать этот экземпляр в других тестовых классах. Но экземпляр, созданный декларативной регистрацией расширения@ExtendWith) может использоваться для нескольких тестовых классов.

Другие вопросы по тегам