我想使用Mockito从其他库中模拟一个类。我读到Mockito依赖于equals方法的特定实现(我认为是CGLIB)。不幸的是,这个外部类具有用final修饰符表示的equals(),并且其主体中存在抛出异常。

当我尝试模拟此类时,总是会从此方法获取异常。 CGLIB显然不能通过final来实现,而是调用了真正的方法。

有任何想法吗?我该怎么做,以使用Mockito模拟此类?也许其他图书馆会处理吗?

[编辑]快速说明:我不想模拟equals(),我检查其他方法。问题是,mockito内部使用equals(),我不知道该做什么。由于equals()是最终的,因此将实际方法调用并引发异常。我希望mockito中有一些设置“不要使用equals()” :-)
感谢您的回答,我明天将仔细阅读它们。

最佳答案

此矩阵显示了不同框架支持的功能:
java - 类中的Mockito和final equals()方法-是否可模拟?-LMLPHP

到矩阵here的外部链接。

据此,只有PowerMockJMockit可以模拟最终方法。

07-24 09:38
查看更多