Spring中的JUnit测试 - 覆盖并忽略来自应用程序其他配置类的bean

mef*_*efi 5 configuration junit spring javabeans

我们在Spring 3中编写了大型应用程序.我需要编写一些服务的JUnit测试检查行为.它不是一个单元,而是系统的一部分.有一些服务和存储库协同工作 - >里面注入大量的bean.该应用程序还使用方面.

我的问题是.在这种测试的情况下如何管理配置和bean?我需要使用app configes中定义的bean,并且在测试中只使用持久性来重新定义bean以使用嵌入式数据库.所以我需要使用来自src的bean,因为它们被定义并仅覆盖一些导致麻烦的问题(持久性bean,bean使用webservices,...)在测试包中,我使用数据源为hsql使Config类定义了bean的持久性.但我不知道接下来会发生什么.我尝试用以下方法注释Test配置类:

@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ, proxyTargetClass = true)
@ComponentScan(basePackages = "com.example.our.app")
public class MyTestConfig implements TransactionManagementConfigurer {
Run Code Online (Sandbox Code Playgroud)

扫描整个应用程序并使用src文件夹中的bean配置.但这也会引起其他导致问题的测试.这是一个好的策略吗?现在用什么 - 使用excludeFilters删除其他测试配置?或者这个策略是不是很糟糕?

谢谢

Mic*_*aev 2

我认为这里最好的使用方法是Spring 配置文件。现在检查此处以使用 H2 进行配置文件测试。