Java 使用Mockito测试抽象类

我想测试一个抽象类。当然,我可以手动编写一个从类继承的模拟。

我可以使用模拟框架(我正在使用Mockito)来执行此操作,而不是手工制作模拟吗?怎么样?

回答:

以下建议让你在不创建“真实”子类的情况下测试抽象类-Mock 是子类。

使用Mockito.mock(My.class, Mockito.CALLS_REAL_METHODS),然后模拟所有被调用的抽象方法。

例:

public abstract class My {

public Result methodUnderTest() { ... }

protected abstract void methodIDontCareAbout();

}

public class MyTest {

@Test

public void shouldFailOnNullIdentifiers() {

My my = Mockito.mock(My.class, Mockito.CALLS_REAL_METHODS);

Assert.assertSomething(my.methodUnderTest());

}

}

注意:此方法的好处是,你不具备实现的抽象方法,只要他们永远不会被调用。

在我看来,这比使用间谍更整洁,因为间谍需要一个实例,这意味着你必须创建抽象类的可实例化子类。

以上是 Java 使用Mockito测试抽象类 的全部内容, 来源链接: utcz.com/qa/431490.html

回到顶部