我有一个带有无效方法的模拟类
public class Mock {
public void method(String string) {
// doSomething
}
}
我不在乎此方法的作用,但我想发送String。
这个String实际上是一个JSON格式的对象,而我正在测试的方法是根据最初发送的String修改该对象(可以说是相当随机的)。
method(String json) {
Object obj = unparse(json);
obj.setRandomValue(random);
String parsed = parse(obj);
Mock.method(parsed);
}
我只想看看在方法调用之后,实际上是否使用随机数设置了以前为null的“randomValue”。
最好的办法是拦截json,解析它并检查对象。
最佳答案
您正在寻找 ArgumentCaptor
:
Mock mock = Mockito.mock(Mock.class);
ArgumentCaptor<String> captor = ArgumentCaptor.forClass(String.class);
mock.method("input");
Mockito.verify(mock).method(captor.capture());
String actualValue = captor.getValue();