使用 Mockito 测试 void 方法的参数

Osc*_*car 4 java junit mockito

是否可以使用 Mockito 测试作为参数传递给 void 方法的实例的值?

public String foo() {
    Object o = new ObjectX();
    o.setField("hi");
    someDao.boo(o);
    return "response";
}
Run Code Online (Sandbox Code Playgroud)

boo 为空,我想测试 foo 是否将该字段设置为“hi”

小智 10

也许您想使用doNothing方法。

@Mock
SomeDao someDao;

@Captor
ArgumentCaptor<ObjectX> captor;

@Test
void test() {
    doNothing().when(someDao).boo(captor.capture());
    foo();
    assertEquals("hi", captor.getValue().getField());
}
Run Code Online (Sandbox Code Playgroud)