我正在使用 JUNIT + Mockito 编写单元测试来测试如下方法:
public someObject methodUnderTest(){
SomeObject obj = SomeAbstractClass.someMethod();
if(obj!=null){
obj.someOtherMethod();
}
return someThing;
}
我想模拟上面代码片段中提到的 abstract Class "SomeAbstractClass"
的调用,这样我就可以验证对 "obj"的调用,比如:
verify(SomeAbstractClass).someMethod();
verify(obj).someOtherMethod();
我尝试使用 mockito 功能,例如: Mockito.CALLS_REAL_METHODS Mockito.RETURNS_MOCKS
但由于 SomeAbstractClass 不可用的依赖项,它们无法工作。
注意:
1) SomeObject 是一个接口(interface)。
2) 我需要一种技术来测试上面的代码片段。我被限制使用上面的代码片段,不能更改代码片段。
最佳答案
您可以使用 PowerMock模拟静态和 final方法。
关于java - 在不继承抽象类的情况下模拟对抽象类的公共(public)方法的调用,最好使用 mockito,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10765273/