Mockito比EasyMock更可取?[已关闭]

2022-09-02 01:08:47

最近我切换到了Mockito框架,并对它非常满意(另见博客文章)。从EasyMock到Mockito的转换非常简单,我设法使测试兼容(即测试用例的行为相同)。

你认为真正的理由或点球大战标准更喜欢EasyMock而不是Mockito吗?到目前为止,我使用的代码库我不能,但我对你的观点感兴趣。


答案 1

Mockito的开发是为了允许BDD风格的单元测试,即:

  • 给定(单元测试运行的上下文)
  • 何时(产生您感兴趣的行为的事件)
  • 然后(您正在寻找的结果)。

  • 鉴于
  • 期望(这是完成验证的地方)
  • 什么时候
  • 然后(返回并查看您在期望中写的内容,因为这里没有实际信息)。

恕我直言,它会产生更具可读性的测试,并允许您分离诸如运行上下文(设置Mocks)之类的内容,并验证您感兴趣的行为。以前的模拟框架要求你为每次互动设置期望,无论它是否与你在该测试中看到的行为方面相关。


答案 2

我比Mockto更熟悉EasyMock,所以我不得不做一些挖掘。Mockito有一个页面,从Mockito的角度进行明确的比较。

在我看来,Mockito的优势在于:

  • 存根和验证的显式分离
  • Matchers基于Hamcrest(JUnit也支持)而不是自定义API。
  • 创建的模拟总是“好”的;也就是说,未锁定的方法调用将返回干净的数据(如空列表),而不是失败

EasyMock有一个非常相似的功能集。Mockito的核心差异化因素是基于Mockito团队认为是限制或次优实践的EasyMock领域。

从功能的角度来看,这两个产品都无法模拟静态方法(我需要在没有MBeanServer的情况下进行测试),但是在这种情况下,您可以在任一框架之上使用PowerMock。

我会说选择适合您测试要求的任何样式。

希望这有帮助!


推荐