我使用的是第三方库,它有一个抽象基类,应用程序代码应该扩展该抽象基类.然后,作为其处理的一部分,子类可以调用基类上的受保护方法.这是不是好的设计可以讨论,但事实就是这样.我想孤立地测试我的子类,因此存根基类的受保护方法.
我可以为子类的一个实例创建一个Mockito间谍,然后清除ABC的公共方法.然而,这对受保护的对象不起作用,因为以下情况显然是不允许的:
MySubclass obj = Mockito.spy(new MySubclass());
Mockito.when(obj.protectedMethod()).thenReturn(42); // error: protectedMethod() has protected access in AbstractBaseClass
是否有其他方法可以为该方法指定存根?