我们有用 Spring 3 编写的大型应用程序。我需要编写 JUnit 测试检查某些服务的行为。它不是一个单元,而是系统的一部分。它内部有一些服务和存储库一起工作->内部有很多注入的bean。该应用程序还使用方面。
我的问题是。在这种测试情况下如何管理配置和bean?我需要使用在应用程序配置中定义的 bean,并且在测试中只使用持久性重新定义 bean 以使用嵌入式数据库。所以我需要使用来自 src 的 bean,因为它们是定义的,并且只覆盖一些导致麻烦的问题(持久性 bean,使用 web 服务的 bean,......)但我不知道接下来会发生什么。我试图用以下方法注释测试配置类:
@Configuration
@EnableAspectJAutoProxy
@EnableTransactionManagement(mode = AdviceMode.ASPECTJ, proxyTargetClass = true)
@ComponentScan(basePackages = "com.example.our.app")
public class MyTestConfig implements TransactionManagementConfigurer {
扫描整个应用程序并使用 src 文件夹中的 bean 配置。但这也会从其他导致问题的测试中获取配置。这整个策略好不好?现在怎么办 - 使用 excludeFilters 删除其他测试配置?还是这个策略很糟糕?
谢谢