19

协议缓冲区类被标记final,大概是为了提高效率;然而,这使得它们很难测试——Mockito不能模拟/监视最终类。我试过使用PowerMockito但没有成功:我在为考试ClassFormatError做准备时得到了一个。final

到目前为止,我的解决方案是创建可模拟的适配器接口,但我希望有一种不那么费力的方法。

4

2 回答 2

2

JMockit可以处理finalstatic. 只需注意如何设置它,因为它需要 -javaagent JVM 参数,或类路径调整,或额外的注释才能模拟finalstatic填充。

于 2010-01-27T03:28:16.823 回答
1

JDave 有一个与JMock ClassImposteriser集成的Unfinalizer

它无法取消从引导类加载器加载的类,并且在启动测试时需要一个 VM 参数。

于 2010-01-26T12:41:59.330 回答