JMockit - 如何验证在本地变量上调用了方法

JMockit - How to verify a method was invoked on a local varaible

这是我尝试使用 JMockit 测试的代码:

public void unitUnderTest() {
  doSomething();
}

private void doSomething() {
  Foo foo = new Foo();
  foo.setExtraFooness("its extra fooness");
  ...
  ...
}

是否可以验证调用了 foo.setExtraFooness("its extra fooness");

您始终可以验证对模拟方法的调用:

@Test
public void exampleTest(@Mocked Foo foo) {
    new ClassUnderTest().unitUnderTest();

    new Verifications() {{ foo.setExtraFooness("whatever"); }};
}

就是说,当您真的想验证 state 时,通常最好避免模拟。如果foo对象可以从被测对象中得到,那么测试应该简单地写一个常规的断言来验证它的状态。