您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Mockito:如何验证在方法内创建的对象上是否调用过方法?

Mockito:如何验证在方法内创建的对象上是否调用过方法?

如果注入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如何推动代码设计的一个示例。

其他 2022/1/1 18:18:12 有437人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶