我有一个方法调用,我想用 mockito 模拟。首先,我创建并注入(inject)了一个对象实例,将在该实例上调用该方法。我的目标是验证方法调用中的对象之一。
mockito 是否允许您在调用 mock 方法时断言或验证对象及其属性?
例子
Mockito.verify(mockedObject)
.someMethodOnMockedObject(
Mockito.<SomeObjectAsArgument>anyObject())
我不想做 anyObject()
我想检查参数对象是否包含一些特定字段
Mockito.verify(mockedObject)
.someMethodOnMockedObject(
Mockito.<SomeObjectAsArgument>**compareWithThisObject()**)
添加到 Mockito 的新功能使这变得更加容易,
ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
verify(mock).doSomething(argument.capture());
assertEquals("John", argument.getValue().getName());
看看 Mockito documentation
如果有多个参数,并且只需要捕获单个参数,请使用其他 ArgumentMatchers 包装其余参数:
verify(mock).doSomething(eq(someValue), eq(someOtherValue), argument.capture());
assertEquals("John", argument.getValue().getName());
我是一名优秀的程序员,十分优秀!