我有一个方法调用,我想用mockito模拟。首先,我已经创建并注入了一个对象的实例,该方法将在其上被调用。我的目的是验证方法调用中的一个对象。
是否有一种方法,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文档
如果有多个参数,并且只需要捕获单个参数,则使用其他ArgumentMatchers来包装其余的参数:
verify(mock).doSomething(eq(someValue), eq(someOtherValue), argument.capture());
assertEquals("John", argument.getValue().getName());
添加到Mockito的新功能使这更容易,
ArgumentCaptor<Person> argument = ArgumentCaptor.forClass(Person.class);
verify(mock).doSomething(argument.capture());
assertEquals("John", argument.getValue().getName());
看一下Mockito文档
如果有多个参数,并且只需要捕获单个参数,则使用其他ArgumentMatchers来包装其余的参数:
verify(mock).doSomething(eq(someValue), eq(someOtherValue), argument.capture());
assertEquals("John", argument.getValue().getName());