Junit 如何模拟方法以返回结果对象
所以我有一个Manager Dao,我想进行单元测试Junit 如何模拟方法以返回结果对象,junit,mockito,Junit,Mockito,所以我有一个Manager Dao,我想进行单元测试 public Bill createBill(Order order){ Bill bill = new Bill(); [...] do stuff return dao.save(bill) } 对于dao.save(bill)方法,我希望什么都不做并返回创建的账单。不知道怎么做。想到两种方法: 1.)扩展DAO并覆盖save方法以执行所需操作。 2.)编写一个DAO实现的接口,将对DAO的引用与对接口的引用交换,然
public Bill createBill(Order order){
Bill bill = new Bill();
[...] do stuff
return dao.save(bill)
}
对于dao.save(bill)方法,我希望什么都不做并返回创建的账单。不知道怎么做。想到两种方法:
1.)扩展DAO并覆盖save方法以执行所需操作。
2.)编写一个DAO实现的接口,将对DAO的引用与对接口的引用交换,然后制作自己的“模拟”DAO,以便在单元测试中使用,以完成您希望它完成的任务
第二个是更多的工作,但对我个人来说似乎更干净。看起来像你想要的
是的,但我只是复制内容,这是[…]做东西。这使得它无法维护。我希望能找到一种方法,只返回“原样”中传递的任何对象
when(dao.save(any(Bill.class))).thenAnswer(AdditionalAnswers.returnsFirstArg());