小编tjb*_*brn的帖子

使用构造函数的参数测试抽象类

我正在尝试学习测试,但在测试抽象类时我遇到了一些问题.我知道我可以创建一个继承自Dog的具体子类,比如ConcreteDog,但是如果我向Dog添加一个新的抽象方法,我将不得不向ConcreteDog添加一个空方法.我想这不会那么酷.

public abstract class Dog {
  private final int id;

  public Dog(int id) {
    this.id = id;
  }

  public int getId() {
    return id;
  }

  public abstract void makeSound();
}

...

public class DogTest {
  @Test
  public void testGetId() {
    int id = 42;

    // How to pass id to Dog constructor ?
    Dog dog = Mockito.mock(Dog.class, Mockito.CALL_REAL_METHODS);

    assertTrue(dog.getId() == id);
  }
}
Run Code Online (Sandbox Code Playgroud)

我想要做的是以某种方式用构造函数调用Mock,就像

Mockito.mock(Dog(id).class, Mockito.CALL_REAL_METHODS);
Run Code Online (Sandbox Code Playgroud)

我不知道是否可以使用mockito,但有一种方法可以使用mockito或其他工具吗?

java mockito

10
推荐指数
3
解决办法
4424
查看次数

标签 统计

java ×1

mockito ×1