mockito验证方法调用参数对象的字段是否符合预期
时间: 2023-09-23 08:03:50 浏览: 58
Mockito也可以验证方法调用时参数对象的字段是否符合预期。可以使用`ArgumentCaptor`或`ArgumentMatchers`来实现这一点。以下是使用`ArgumentCaptor`的示例代码:
```
public class MyClass {
public void myMethod(MyObject arg) {
// do something
}
}
public class MyObject {
private String field1;
private int field2;
// getters and setters
}
MyClass myClassMock = mock(MyClass.class);
ArgumentCaptor<MyObject> argumentCaptor = ArgumentCaptor.forClass(MyObject.class);
MyObject expectedObject = new MyObject();
expectedObject.setField1("expectedValue");
expectedObject.setField2(123);
myClassMock.myMethod(expectedObject);
verify(myClassMock).myMethod(argumentCaptor.capture());
assertEquals("expectedValue", argumentCaptor.getValue().getField1());
assertEquals(123, argumentCaptor.getValue().getField2());
```
在上面的示例代码中,我们创建了一个`MyObject`对象,并设置了它的字段。然后我们调用了`myMethod`方法,并传递了这个对象作为参数。接下来,我们使用`ArgumentCaptor`来捕获方法调用时的参数对象,并对它的字段进行断言,以确保它们符合预期。