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
对象可以从被测对象中得到,那么测试应该简单地写一个常规的断言来验证它的状态。
这是我尝试使用 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
对象可以从被测对象中得到,那么测试应该简单地写一个常规的断言来验证它的状态。