hel*_*hod 6 java junit mockito
当使用Mockito时,我只使用它来模拟依赖关系,即我的工作流看起来像这样:
我有一个依赖的类:
public class C {
public C (A a, B b) {
this.a = a;
this.b = b;
}
public String fooBar() {
return a.foo() + b.bar();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的测试类中,我模拟了这些依赖项,并告诉它们在调用某些指定方法时返回哪些值:
public class CSpec {
private A a = mock(A.class);
private B b = mock(B.class);
@Test
public itShouldReturnFooBar() {
when(a.foo()).thenReturn("foo");
when(b.bar()).thenReturn("bar");
C c = new C(a, b);
assertThat(c.fooBar().isEqualTo("foobar"));
}
}
Run Code Online (Sandbox Code Playgroud)
(我希望这个例子不是太简单或太衍生;-)).这很好用,它允许我单独测试类(这里:C).尽管如此,我从不使用Mockito的verify方法或其他任何功能.以这种方式使用Mockito可以/足够吗?
验证通常用于检查您是否C真正调用A.foo()和B.bar()方法.所以你可以添加
verify(a).foo();
verify(b).foo();
Run Code Online (Sandbox Code Playgroud)
在断言之前或之后.我不认为您需要或应该在这里使用它们,但有几种情况您需要:
a.foo和b.bar方法,没有别的a.foo2a.foo然后调用将被路由到aReal.foo| 归档时间: |
|
| 查看次数: |
283 次 |
| 最近记录: |