Spring picks up inner @Configuration for Test1 from Test2. I need a mocked IService in Test2 but a real ServiceImpl in Test1. Also I want to have common TestConfiguration for all my tests. But I always have mocked IService in both tests. What is wrong?
How I can disable inner configurations picking up for sibling tests?
Here is my code :
ServiceImpl.java:
@Service
public class SeriviveImpl implements IService {
}
TestConfiguration.java:
@Configuration
@ComponentScan
public class TestConfiguration {
// empty
}
Test1.java:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {TestConfiguration.class})
public class Test1 {
@Autowired
private IService service;
}
Test2.java
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {Test2.CustomConfiguration.class, TestConfiguration.class})
public class Test2 {
@Autowired
private IService service;
@Configuration
static class CustomConfiguration {
@Bean
IService service() {
return mock(IService.class);
}
}
}