java如何使用'when/then'mockito调用具有相同参数的另一个方法
我有以下设置:
class Foo{
public Foo addDate(String str, Date d){
.....
}
public Foo addString(String str){
.....
}
}
class Bar{
private Foo foo;
public void bar(){
foo.addDate(x, x);
}
}
class testBar{
//test bar()
}
在编写上述用法的测试用例时,我如何使用When/then在调用addDate
但使用相同参数时调用addString
使用mock或spy可以进行类似的操作吗
when(foo.addDate("myString", any())).thenReturn(foo.addString("myString"));
# 1 楼答案
我不确定你上面说的是什么意思,所以我决定用一个工作示例来介绍我遇到的情况,在注释中是每个测试的系统输出:
# 2 楼答案
您可以使用
thenAnswer
,在这里您可以编写一个lambda,将Answer
对象作为参数,在这里您可以提取对addDate
的调用的参数:看一下文档here