0
我有DI鏈(DBCONFIG - >庫 - >組件 - > RestController)在對DBConfig春天開機 - DI - 單元測試
數據源的儲備庫自動裝配。存儲庫在Component ...等中是AutoWired。
應用類 - CtnStatusCheckerApplication.class
數據源創建查找JNDI( 「eis.OT4.SBL_DS」)。我嘲笑DataSource並將其放入Spring JNDI樹中。
這是我的單元測試(在Groovy):
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = CtnStatusCheckerApplication.class)
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 - 爲什麼sblDataSource siebelRepository空裏面? 2 - 在這種情況下,應該使用哪個類來初始化@SpringApplicationConfiguration?頂級對象還是每個Beans? (如服務,組件,庫等)