Ответ 1
Spring кэширует контекст приложения по умолчанию при выполнении тестов. Ключ, который использует Spring для кеша, состоит из следующего:
- (из @ContextConfiguration)
- классы (из @ContextConfiguration)
- contextInitializerClasses (из @ContextConfiguration)
- contextLoader (из @ContextConfiguration)
- activeProfiles (из @ActiveProfiles)
- resourceBasePath (из @WebAppConfiguration)
Все сведения о кешировании можно найти в документации .
По моему опыту, редко требуется использовать @DirtiesContext
, чтобы заставить Spring воссоздать контекст. Я не встречал слишком много ситуаций, когда это было необходимо - единственное, что приходит на ум, - это использование диспетчера общих кэшей.
Вам лучше использовать его только на тестах, которые вам абсолютно необходимы. Скорость выполнения будет слишком медленной, если вы используете @DirtiesContext
для каждого теста, и вы ничего не получите взамен.