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