Spring测试-从测试类创建第一个bean并通过真实代码

问题描述 投票:0回答:2

问题:如何确保测试类中的bean首先在Spring中创建?情况:我有一个在运行时提供的数据源,它是通过jndi获取的。在编译时,我正在为内存DB创建一个,并将其绑定到jndi名称。问题是首先从实际代码中执行jndi查找。

如何确保首先创建测试DS,然后再执行实际代码中的jndi查找?

找到解决方案后编辑。我找到的解决方案是:

有RepositoryConfig.java和RepositoryTestConfig.java。在将RepositoryConfig导入RepositoryTestConfig之前。

我更改了方法:

  • 我制作了RepositoryTestConfig来扩展RepositoryConfig
  • 我将DS bean隐藏/覆盖到RepositoryTestConfig中
  • 在EntityManager上,我通过自动装配添加了DS

并且问题已100%解决。

由于DS通过jndi查找进行了创建,所以我创建了一个单独的测试来证明该方法,因为现在真正的方法已由DS表单RepositoryConfigTest隐藏/覆盖。

java spring spring-test
2个回答
0
投票

您应该使用需要的包上的@Configuration和自定义@ComponentScan类来配置它>


0
投票

您可以使用@Profile

© www.soinside.com 2019 - 2024. All rights reserved.