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