I have DI chain (DbConfig -> Repository -> Component -> RestController)
DataSource in DBConfig is AutoWired in Repository. Repository is AutoWired in Component...etc.
This is my unit test:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = CtnStatusCheckerApplication)
class SiebelRepositoryTest {
@Autowired
SiebelRepository siebelRepository
@Autowired
@Qualifier("sblDataSource")
DataSource sblDataSource
@BeforeClass
public static void setUpClass() throws Exception{
DataSource ds = mock(DataSource.class)
SimpleNamingContextBuilder builder = new SimpleNamingContextBuilder()
builder.bind("eis.OT4.SBL_DS",ds)
builder.activate()
}
@Test
public void testContext(){
assert siebelRepository != null
assert sblDataSource != null
println Whitebox.getInternalState(siebelRepository,"sblDataSource") // prints "null" why?
}
}
1 - Why is sblDataSource inside siebelRepository null? 2 - In this type of scenario, @SpringApplicationConfiguration should be initialized with which class? top level object or each individual Beans? (like Service, component, Repository etc.)
Aucun commentaire:
Enregistrer un commentaire