1
使用EasyMock 3.2,我有一個測試,基本上與我下面的測試相同。當我運行這個測試時,SUT試圖執行時有一個空指針異常daoSupport.getHibernateTemplate().loadAll();
當模擬daoSupport應該返回模擬模板時,它返回null
。Easymock和Return(模擬)返回null
@RunWith(EasyMockRunner.class)
public class DAOImplTest extends EasyMockSupport {
@Mock
private HibernateDaoSupport daoSupport;
@Mock
private HibernateTemplate template;
@Test
public void test() {
expect(daoSupport.getHibernateTemplate()).andReturn(template).once(); //1
expect(template.loadAll()).andReturn(Collections.emptyList()).once(); //2
replayAll();
SUT mySUT = new SUT(daoSupport);
mySUT.exercise();
verifyAll();
}
}
我可以讓測試通過上面這裏的片段取代//1
與
daoSupport.setHibernateTemplate(template);
顯然,這不是我想要做的工作。我希望模擬的daoSupport能夠返回模擬模板。這裏有什麼問題?
奇怪的是,在這種情況下EasyMock「默默地失敗」...... Mockito拋出一個異常。 – fge