如何 mocka 方法到 return 结果对象
How to mocka method to return the resulting object
所以我有一个要进行单元测试的 Manager-Dao
public Bill createBill(Order order){
Bill bill = new Bill();
[...] do stuff
return dao.save(bill)
}
我希望 dao.save(bill) 方法什么也不做,return 创建的账单。不知道该怎么做。
想到了两种方法:
1.) 扩展 DAO 并覆盖保存方法以执行您想要的操作。
2.) 编写 DAO 实现的接口,将对 DAO 的引用与对接口的引用交换,然后制作你自己的 "mocked" DAO 以在单元测试中使用,以执行你希望它执行的操作。
第二个工作量更大,但对我个人而言似乎更干净。
看起来你想要 returnsFirstArg
。
when(dao.save(any(Bill.class))).thenAnswer(AdditionalAnswers.returnsFirstArg());
所以我有一个要进行单元测试的 Manager-Dao
public Bill createBill(Order order){
Bill bill = new Bill();
[...] do stuff
return dao.save(bill)
}
我希望 dao.save(bill) 方法什么也不做,return 创建的账单。不知道该怎么做。
想到了两种方法:
1.) 扩展 DAO 并覆盖保存方法以执行您想要的操作。 2.) 编写 DAO 实现的接口,将对 DAO 的引用与对接口的引用交换,然后制作你自己的 "mocked" DAO 以在单元测试中使用,以执行你希望它执行的操作。
第二个工作量更大,但对我个人而言似乎更干净。
看起来你想要 returnsFirstArg
。
when(dao.save(any(Bill.class))).thenAnswer(AdditionalAnswers.returnsFirstArg());