У меня разные весенние тесты. некоторые из них используют только диспетчер сущностей и репозитории, но некоторые используют также другие бобы и менеджер сущностей и репозитории. могу ли я повторно использовать контекст, построенный для тестов db, и построить только недостающую часть большего контекста? и, следовательно, снова избежать дорогостоящей сборки диспетчера сущностей
Да, это возможно благодаря умной иерархической структуре для ваших контекстов. Бобы в любом конкретном контексте могут видеть компоненты в том же контексте, что и бобы в родительских контекстах.
Возможно, вы не сможете развернуть свое производственное приложение с использованием такой иерархии, но создание такой иерархии в тестах позволит вам избежать повышения производительности загрузки JPA EntityManager
.
В принципе, вы будете использовать аннотацию @ContextHierarchy
в иерархии тестового класса, где контекст, загруженный для (потенциально abstract
) родительского тестового класса, определяет компонент для EntityManager
.
Взгляните на раздел " Иерархии контекста " главы "Тестирование" в справочном руководстве Spring Framework.
С Уважением,
Сэм (автор Spring TestContext Framework)