我正在嘗試爲其有幾個標記爲@Autowired的字段編寫單元測試。鑑於Spring自動解析這些字段的具體實現,我很難弄清楚如何在測試運行期間將我的Mock對象(通過EasyMock創建)作爲依賴關係。在課堂中使用@Autowired意味着在該課程中缺乏setter。有沒有辦法讓我插入我的模擬對象,而無需在課堂上創建額外的setter?使用Junit和EasyMock測試一個具有自動掛接符號的類嗎?
這裏是什麼,我試圖完成一個例子:
public class SomeClassUnderTest implements SomeOtherClass{
@Autowired
private SomeType someType;
@Autowired
private SomeOtherType someOtherType;
@Override
public SomeReturnType someMethodIWouldLikeToTest(){
//Uses someType and someOtherType and returns SomeReturnType
}
}
下面是我手工製作我的測試類我撞到牆前:
public class MyTestClassForSomeClassUnderTest{
private SomeType someType;
private SomeOtherType someOtherType;
@Before
public void testSetUp(){
SomeClassUnderTest someClassToTest = new SomeClassUnderTest();
someType = EasyMock.createMock(SomeType.class);
someOtherType = EasyMock.createMock(SomeOtherType.class);
//How to set dependencies????
}
@Test
public void TestSomeMethodIWouldLikeToTest(){
//??????
}
}
這將是巨大的,得到推向正確的方向。
由於
謝謝你的提示。 – 2012-03-21 18:06:07
http://stackoverflow.com/questions/16426323/injecting-into-autowired-variable-during-testing – Dan 2015-02-13 00:17:05
EasyMock支持從Mockito 3.2版本的類似註釋模擬注入。看到我的答案。 – krm 2015-12-08 17:13:52