我有一段代码,我想用Mockito测试:
mockedClass instanceof SampleInterface
mockedClass
是模拟抽象类:MockedClass
,SampleInterface
是接口。这是失败的观点:
Validate.isTrue(mockedClass instanceof SampleInterface, "The mockedClass is not a SampleInterface");
如何模拟此代码?
答案 0 :(得分:18)
听起来你需要MockSettings.extraInterfaces
。
MockedClass mockedClass = mock(MockedClass.class,
withSettings().extraInterfaces(SampleInterface.class));
请注意,它附带了自己的警告标签:
这个神秘的功能应该偶尔使用。被测物体应该确切地知道它的合作者和依赖。如果你经常使用它而不是[原文如此],请确保你真正生产简单,干净和安全;可读代码。
作为替代方案,创建一个测试接口,扩展您希望模拟实现的所有接口,并以通常的方式模拟。
答案 1 :(得分:0)
除了另一个答案:
如果可能的话,你应该改为模拟界面,这意味着像这样创建模拟:
SampleInterface mockedClass = mock(SampleInterface.class); // not mock(MockedClass)