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

时间:2015-08-28 07:18:47

标签: java jmockit

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

public void unitUnderTest() {
  doSomething();
}

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

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

1 个答案:

答案 0 :(得分:1)

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

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

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

也就是说,当你真的想要验证 state 时,最好避免模拟。如果可以从被测对象中获取foo对象,则测试应该只编写一个传统的断言来验证其状态。