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

标签 spring configuration junit javabeans

我们有用 Spring 3 编写的大型应用程序。我需要编写 JUnit 测试检查某些服务的行为。它不是一个单元,而是系统的一部分。它内部有一些服务和存储库一起工作->内部有很多注入(inject)的bean。该应用程序还使用方面。

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

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

扫描整个应用程序并使用 src 文件夹中的 bean 配置。但这也会从其他导致问题的测试中获取配置。这整个策略好不好?现在怎么办 - 使用 excludeFilters 删除其他测试配置?还是这个策略很糟糕?

谢谢

最佳答案

我认为这里最好的使用方式是Spring profiles .
查看here now to use H2 for tests与配置文件。

关于spring - Spring中的JUnit测试-覆盖和忽略来自应用程序其他配置类的bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15573822/

相关文章:

java - Spring 框架: which template engine?

java - 如何使用Spring Boot将数据分离到两个表中?

带有 Zoho smtp 服务器的 PHP Swiftmailer 不发送邮件

java - Java 中的单元测试 - 它是什么?

java - 在 Spring Boot 中连接多个 "Dynamic"数据库以及本地 "Static"数据库

java - Spring 启动 : Cannot determine embedded database driver class for database type NONE

c++ - Libconfig 编辑配置值

c# - 我们应该如何在 Azure Function 中将 Azure Key Vault 与 IOptions<T> 结合使用?

java - Mockito 和 Spring Autowiring

java - 确认方法签名未被更改的测试?