协议缓冲区类被标记final,大概是为了提高效率;然而,这使得它们很难测试——Mockito不能模拟/监视最终类。我试过使用PowerMockito但没有成功:我在为考试ClassFormatError做准备时得到了一个。final
到目前为止,我的解决方案是创建可模拟的适配器接口,但我希望有一种不那么费力的方法。
协议缓冲区类被标记final,大概是为了提高效率;然而,这使得它们很难测试——Mockito不能模拟/监视最终类。我试过使用PowerMockito但没有成功:我在为考试ClassFormatError做准备时得到了一个。final
到目前为止,我的解决方案是创建可模拟的适配器接口,但我希望有一种不那么费力的方法。
JMockit可以处理final和static. 只需注意如何设置它,因为它需要 -javaagent JVM 参数,或类路径调整,或额外的注释才能模拟final和static填充。
JDave 有一个与JMock ClassImposteriser集成的Unfinalizer
它无法取消从引导类加载器加载的类,并且在启动测试时需要一个 VM 参数。