0
找到了解决方法。底部看解决方案Easymock:问题模拟void DAO方法 - 意外的方法调用
好吧我一整天都在EasyMock监狱,我需要一些帮助走出去。 我有一个void save()方法,我正在嘲笑。
public void save(PurchaseOrder po);
PurchaseOrder的是,有两个孩子
USPurchaseOrder
CAPurchaseOrder
这里是我的JUnit测试代码的抽象类
MyDAO myDAO = createMock(MyDAO.class);
PurchaseOrder usPurchaseOrder = new USPurchaseOrder(msgUS);
myDAO.save(usPurchaseOrder);
expectLastCall().atLeastOnce();
PurchaseOrder caPurchaseOrder = new CAPurchaseOrder(msgCA);
myDAO.save(caPurchaseOrder);
expectLastCall().atLeastOnce();
replay(myDAO);
//execute code that uses DAO
我得到以下错误:意外的方法调用MyDAO.save( USPurchaseOrder @ 1a70b8):
这里唯一的问题是DAO签名没有需要USPurchaseOrder,只有了一个采购订单,这是我进入。此外,
即使这样做会产生同样的错误
myDAO.save(new USPurchaseOrder(msgUS));
我在做什么错?
解决方法 好吧,我一直在刻苦攻读这一点,虽然我不明白为什么我收到错误,我增加了anyObject()的代码才能正常工作。
MyDAO myDAO = createMock(MyDAO.class);
myDAO.save(anyObject(OrderRequest.class));
myDAO.save(anyObject(OrderRequest.class));
replay(myDAO);
//execute code that uses DAO