我有一段代码,我想用 Mockito 测试一下:
mockedClass instanceof SampleInterface
The mockedClass
被嘲笑的抽象类:MockedClass
,以及SampleInterface
是一个接口。这是失败点:
Validate.isTrue(mockedClass instanceof SampleInterface, "The mockedClass is not a SampleInterface");
如何模拟这段代码?
听起来你需要MockSettings.extraInterfaces https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/MockSettings.html#extraInterfaces-java.lang.Class...-.
MockedClass mockedClass = mock(MockedClass.class,
withSettings().extraInterfaces(SampleInterface.class));
请注意,它带有自己的警告标签:
这个神秘的功能应该偶尔使用。被测对象应该确切地知道它的协作者和依赖项。如果您碰巧经常使用它[原文如此],请确保您确实生成了简单、干净且可读的代码。
作为替代方案,创建一个用于测试的接口,该接口扩展了您希望模拟实现的所有接口,并以通常的方式进行模拟。
public abstract class ForTest implements SampleInterface {}
MockedClass mockedClass = mock(ForTest.class);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)