是否有可能从Spring配置中替换单个bean或值进行一个或多个集成测试?
就我而言,我有配置
@Configuration
@EnableAutoConfiguration
@ComponentScan(basePackages = {"foo.bar"})
public class MyIntegrationTestConfig {
// everything done by component scan
}
Run Code Online (Sandbox Code Playgroud)
哪个用于我的集成测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MyIntegrationTestConfig.class, loader = SpringApplicationContextLoader.class)
public class MyIntegrationTest {
// do the tests
}
Run Code Online (Sandbox Code Playgroud)
现在我想要进行第二组集成测试,其中我用一个不同的bean替换一个bean.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MyIntegrationTestConfig.class, loader = SpringApplicationContextLoader.class)
public class MySpecialIntegrationTest {
// influence the context configuration such that a bean different from the primary is loaded
// do the tests using the 'overwritten' bean
}
Run Code Online (Sandbox Code Playgroud)
实现这一目标的最简单方法是什么?