Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Junit 如何模拟方法以返回结果对象_Junit_Mockito - Fatal编程技术网

Junit 如何模拟方法以返回结果对象

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的引用与对接口的引用交换,然

所以我有一个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的引用与对接口的引用交换,然后制作自己的“模拟”DAO,以便在单元测试中使用,以完成您希望它完成的任务

第二个是更多的工作,但对我个人来说似乎更干净。

看起来像你想要的


是的,但我只是复制内容,这是[…]做东西。这使得它无法维护。我希望能找到一种方法,只返回“原样”中传递的任何对象
when(dao.save(any(Bill.class))).thenAnswer(AdditionalAnswers.returnsFirstArg());