gpt4 book ai didi

java - 使用 Mockito 测试抽象类

转载 作者:IT老高 更新时间:2023-10-28 12:17:18 44 4
gpt4 key购买 nike

我想测试一个抽象类。当然可以 manually write a mock从类继承。

我可以使用模拟框架(我正在使用 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());
}
}

注意:此解决方案的美妙之处在于您不必实现抽象方法,只要它们从未被调用。

老实说,这比使用 spy 更简洁,因为 spy 需要一个实例,这意味着您必须创建抽象类的可实例化子类。

关于java - 使用 Mockito 测试抽象类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1087339/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com