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

Java JMockit-如何验证在本地变量上调用的方法,java,jmockit,Java,Jmockit,这是我试图用JMockit测试的代码: public void unitUnderTest() { doSomething(); } private void doSomething() { Foo foo = new Foo(); foo.setExtraFooness("its extra fooness"); ... ... } 是否可以验证foo.setExtraFooness(“其额外fooness”)已调用?您始终可以验证对模拟方法的调用: @Test pub

这是我试图用JMockit测试的代码:

public void unitUnderTest() {
  doSomething();
}

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

是否可以验证
foo.setExtraFooness(“其额外fooness”)已调用?

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

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

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

也就是说,当您确实想要验证状态时,通常最好避免模拟。如果
foo
对象可以从被测对象中获得,那么测试只需编写一个常规断言来验证其状态。

No,因为它是一个真实的对象。为了做到这一点,它必须是模拟的。除了让foo决赛,它还很有魅力!!谢谢罗格里奥。