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