说我有这样的课程:
public class Foo {
private Bar bar;
public Foo(Bar bar) {
this.bar = bar;
}
public void someMethod() {
bar.someOtherMethod();
}
}
当调用someMethod()时,如何验证bar.someOtherMethod()被调用一次?在我的测试中,我将一个模拟的Bar类传递给构造函数。
我的测试看起来像这样:
private Bar bar;
private Foo foo;
@Before
public void setUp() throws Exception {
bar = mock(Bar.class);
foo = new Foo(bar);
}
@Test
public void testSomeMethod() {
foo.someMethod();
verify(Bar).someOtherMethod();
}
答案 0 :(得分:2)
使用Mockito -
verify(mockBar, times(1)).someOtherMethod();
答案 1 :(得分:0)
由于您在Bar
的实例中传递,因此相对简单:
有了这个,你可以在你的测试中使用这样的东西:
doNothing().when(mockBar).someOtherMethod();
foo.someMethod();
verify(mockBar).someOtherMethod();