Mockito是用于单元测试的基于Java的开源模拟框架。 Mockito框架是根据麻省理工学院(麻省理工学院)许可发布的。它允许在自动化单元测试中创建模拟对象, 以达到测试驱动开发(TDD)或行为驱动开发(BDD)的目的。它与其他测试框架(如TestNG和JUnit)一起使用。
EasyMock是用于测试Java应用程序的基于Java的开源测试框架。 EasyMock框架是根据Apache许可发布的。它允许使用Java Reflection创建给定接口的模拟对象。与Mockito和EasyMock一样, 它也可以与其他测试框架(例如TestNG和JUnit)结合使用。
- 存根:存根是保存预定义数据的对象。它充当被调用模块的临时对象, 并提供与原始软件相同的输出。
- 模拟:模拟是模拟真实对象行为的克隆或虚拟对象。
- 间谍:间谍是真实对象的部分模拟对象。
我们无法使用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())模拟抛出异常。 |
推荐阅读
- PowerMock模拟对象
- Hamcrest Matchers介绍和用法
- 行为驱动开发(BDD)
- 参数捕获器(ArgumentCaptor)
- Mockito参数匹配器
- 读取 Android 设备内核日志的方法
- etherlime-3-Etherlime Library API-Deployed Contract Wrapper
- sonarqube扫描安卓代码
- android license status unknown解决办法