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:

@Test

public 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

回到顶部