个性化阅读
专注于IT技术分析

Mockito与EasyMock有什么区别?

点击下载

Mockito是用于单元测试的基于Java的开源模拟框架。 Mockito框架是根据麻省理工学院(麻省理工学院)许可发布的。它允许在自动化单元测试中创建模拟对象, 以达到测试驱动开发(TDD)或行为驱动开发(BDD)的目的。它与其他测试框架(如TestNG和JUnit)一起使用。

EasyMock是用于测试Java应用程序的基于Java的开源测试框架。 EasyMock框架是根据Apache许可发布的。它允许使用Java Reflection创建给定接口的模拟对象。与Mockito和EasyMock一样, 它也可以与其他测试框架(例如TestNG和JUnit)结合使用。

  • 存根:存根是保存预定义数据的对象。它充当被调用模块的临时对象, 并提供与原始软件相同的输出。
  • 模拟:模拟是模拟真实对象行为的克隆或虚拟对象。
  • 间谍:间谍是真实对象的部分模拟对象。

另一方面, EasyMock是用于测试Java应用程序的基于Java的开源测试框架。与Mockito一样, EasyMock可以模拟类和接口。它允许使用Java Reflection API为给定接口动态(在运行时)创建模拟对象。 EasyMock框架是根据Apache许可发布的。

我们无法使用EasyMock模拟最终方法和私有方法。此外, 它为toString(), hashCode(), equal()和finalize()方法提供了内置行为。与Mockito一样, EasyMock也可以与其他测试框架(例如TestNG和JUnit)结合使用。

以下是Mockito和EasyMock之间的一些重要区别:

参数 莫基托 轻松模拟
执照 Mockito框架是根据麻省理工学院(麻省理工学院)许可发布的。 EasyMock框架是根据Apache许可发布的。
支持测试间谍 Mockito支持模拟和间谍。间谍和模拟都执行不同的功能。间谍会创建部分模拟对象, 而模拟会创建真实对象的伪/伪(完全模拟)对象。 EasyMock仅支持模拟。它不支持间谍。
模拟方法调用 在Mockito中, 我们使用Mockito.when(mock.method(args))。thenReturn(value)方法来模拟方法调用。 在EasyMock中, 用于模拟方法调用的EasyMock.expect(mock.method(args))。andReturn(Value)方法。
验证电话 在Mockito中, Mockito.verify(mock).method(args)用于验证对模拟的调用。 在EasyMock中, EasyMock.verify(mock)用于验证对模拟的调用, 但是在调用EasyMock.replay(mock)方法之后始终使用此方法。
异常抛出 在Mockito中, 可以在调用Mockito.when(mock.method(args))方法之后使用.thenThrow(ExceptionClass.class)模拟抛出异常。 在EasyMock中, 可以在调用EasyMock.expect(..)方法之后使用.andThrow(new ExceptionClass())模拟抛出异常。

Mockito是用于测试Java应用程序的最流行的模拟框架。它比其他任何测试和模拟框架(例如EasyMock)都要好。


赞(1)
未经允许不得转载:srcmini » Mockito与EasyMock有什么区别?

评论 抢沙发

评论前必须登录!