java - 重用缓存的 spring 上下文来构建更大的上下文

标签 java spring testing spring-test

我有不同的 Spring 测试。它们中的一些仅使用实体管理器和存储库,但一些还使用其他 bean 实体管理器和存储库。我可以重用为数据库测试构建的上下文并只构建更大上下文的缺失部分吗?因此再次避免昂贵的实体管理器构建

最佳答案

是的,这可以通过针对您的上下文的巧妙层次结构来实现。任何给定上下文中的 Bean 都可以看到同一上下文中的 bean 以及父上下文中的 bean。

您可能不会使用这样的层次结构实际部署您的生产应用程序,但在测试中创建这样的层次结构可以让您避免再次加载 JPA EntityManager 的性能影响。

基本上,您将在测试类层次结构中使用 @ContextHierarchy 注释,其中为(可能是 abstract)父测试类加载的上下文定义了 bean对于 EntityManager

看看 Context hierarchies Spring Framework 引用手册中测试章节的部分。

问候,

Sam(Spring TestContext 框架的作者)

关于java - 重用缓存的 spring 上下文来构建更大的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23220524/

相关文章:

java - 装箱拆箱、cglib、spring 和 NoSuchMethodError 之谜

testing - 您如何记录您的网络浏览器要求?

ruby-on-rails - 是否可以在 rolify gem 的集成测试中测试 after_create 方法?

ruby-on-rails - 使用 rspec 测试该方法在另一个方法中被调用

java - 识别搜索爬虫

java - 循环队列: array values disappears when doubling size

java - 在 Fragments 中使用异步任务时如何避免应用程序崩溃?

java - 从 CrudRepository Spring Boot 访问嵌入式类的字段

java - Spring中配置的BasicDataSource与Weblogic数据源

java - HyperLoglog Spring 按键操作