我有一个带有无效方法的模拟类

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();

10-04 12:36
查看更多