Java 产品和测试的不同自动配置?
我正在为Spring Boot开发一个库。目前,它有一些生产自动配置 现在,我还想(作为一个库)为单元测试提供模拟类,而不是常规类 我知道SpringBatch通过使用Java 产品和测试的不同自动配置?,java,spring,spring-boot,unit-testing,dependency-injection,Java,Spring,Spring Boot,Unit Testing,Dependency Injection,我正在为Spring Boot开发一个库。目前,它有一些生产自动配置 现在,我还想(作为一个库)为单元测试提供模拟类,而不是常规类 我知道SpringBatch通过使用@SpringBatchTest标记测试类来实现这一点 我怎样才能达到类似的行为 模拟类或测试支持类应在单独的库中提供。这是spring团队遵循的方法。 将测试支持类与生产类打包在一起是不可取的,应该避免 ConditionalOn类可以帮助您实现这种行为。是的,我试图了解正确的类是否为ConditionalOnClass对于不同
@SpringBatchTest
标记测试类来实现这一点
我怎样才能达到类似的行为 模拟类或测试支持类应在单独的库中提供。这是spring团队遵循的方法。
将测试支持类与生产类打包在一起是不可取的,应该避免
ConditionalOn
类可以帮助您实现这种行为。是的,我试图了解正确的类是否为ConditionalOnClass
对于不同的用例,它们有很多。好的。假设我这样做。如何实现我描述的行为?您将提供与spring boot test autoconfigure
对所有层所做的类似的测试配置。请参见spring引导测试自动配置
模块中的spring.factories
。另一个选项是注册@MockBean或@SpyBean,并让用户配置他们的行为。但是Spring将为my@Bean
提供两个候选对象。如何解决这个问题?什么是我的@ConditionalOn…
?没有条件on@TestXXX
注释使用此特定配置配置应用程序。其他则不适用。例如,查看他们如何配置自己的@JdbcTest
。