Mockito:如何验证在方法内创建的对象上是否调用过方法?
我是Mockito的新手。
给定下面的类,如何someMethod
在调用后使用Mockito验证一次foo被调用的对象呢?
public class Foo{
public void foo(){
Bar bar = new Bar();
bar.someMethod();
}
}
我想打以下电话,
verify(bar, times(1)).someMethod();
bar
的模拟实例在哪里Bar
?
回答:
如果注入Bar实例,或用于创建Bar实例的工厂(或其他483种方法之一),则你将具有执行测试所需的访问权限。
工厂示例:
给定一个这样的Foo类:
public class Foo { private BarFactory barFactory;
public Foo(BarFactory factory) {
this.barFactory = factory;
}
public void foo() {
Bar bar = this.barFactory.createBar();
bar.someMethod();
}
}
在你的测试方法中,你可以像这样注入BarFactory:
@Testpublic void testDoFoo() {
Bar bar = mock(Bar.class);
BarFactory myFactory = new BarFactory() {
public Bar createBar() { return bar;}
};
Foo foo = new Foo(myFactory);
foo.foo();
verify(bar, times(1)).someMethod();
}
奖励:这是TDD如何推动代码设计的一个示例。
以上是 Mockito:如何验证在方法内创建的对象上是否调用过方法? 的全部内容, 来源链接: utcz.com/qa/400482.html