0

假设我有这样的课程:

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();
}
4

2 回答 2

2

与 Mockito -

verify(mockBar, times(1)).someOtherMethod();
于 2015-05-06T01:17:01.993 回答
0

由于您正在传递 的实例Bar,因此它相对简单:

  • 与模拟交互(即你必须期望模拟做某事(或者什么都不做,在这种情况下)
  • 期望它只交互过一次

有了这个,你可以在你的测试中使用这样的东西:

doNothing().when(mockBar).someOtherMethod();
foo.someMethod();
verify(mockBar).someOtherMethod();
于 2015-05-06T01:27:00.240 回答