Is there a possibility to replace a single bean or value from a Spring configuration for one or more integration tests?
In my case, I have the configuration
@Configuration
@EnableAutoConfiguration
@ComponentScan(basePackages = {"foo.bar"})
public class MyIntegrationTestConfig {
// everything done by component scan
}
Which is used for my integration test
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = MyIntegrationTestConfig.class, loader = SpringApplicationContextLoader.class)
public class MyIntegrationTest {
// do the tests
}
Now I want to have a second set of integration tests where I replace one bean by a different one.
@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
}
What is the most simple way to achieve this?