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