如何在不运行方法的情况下模拟方法调用并返回值?
请考虑以下方法:
public boolean isACertainValue() {
if(context.getValueA() != null && context.getValueA().toBoolean() == true) {
if(context.getType() != null && context.getType() == ContextType.certainType) {
return true;
}
}
return false;
}
我没有写这个代码,它丑陋如地狱,它完全过于复杂,但我必须使用它。
现在,我想测试一个依赖于对此方法的调用的方法。
我想我可以通过以下方式处理这个问题:
Mockito.when(spy.isACertainValue()).thenReturn(true);
因为这就是我想测试的情况。
但它不起作用,因为它仍在调用方法体:/
我得到零点,或者更确切地说,我得到的东西是这样的
滥用。ErrorTypeOfReturnValue;布尔值不能由 getValueA() 返回。getValueA() 应返回 ValueA
所以我尝试(作为一种解决方法)来做:
Mockito.when(contextMock.getValueA()).thenReturn(new ValueA());
和Mockito.when(contextMock.getType()).thenReturn(ContextType.certainType);
但后来我得到了一个空点,我似乎无法调试。
那么,在这种情况下,它是如何做到的呢?