Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing EasyMock和Mockito之间的差异_Unit Testing_Testing_Mockito_Easymock - Fatal编程技术网

Unit testing EasyMock和Mockito之间的差异

Unit testing EasyMock和Mockito之间的差异,unit-testing,testing,mockito,easymock,Unit Testing,Testing,Mockito,Easymock,我正在学习使用EasyMock和Mockito进行测试。它们之间有什么区别? 它们的优点和缺点是什么?哪一个更适合使用?虽然这个问题主要是基于观点,但您可以从以下方面获得差异: 差异: 无录制/重播模式-无需它们。使用Mockito mocks只能做两件事-验证或存根。在执行之前进行存根,然后进行验证 所有mock都是“nice”(甚至更好,因为集合返回方法返回空集合而不是null)。即使模拟很好,您也可以严格验证它们 根据您的需要,检测任何不需要的交互 用于提高可读性的显式语言:verify

我正在学习使用EasyMock和Mockito进行测试。它们之间有什么区别?
它们的优点和缺点是什么?哪一个更适合使用?

虽然这个问题主要是基于观点,但您可以从以下方面获得差异:

差异

  • 无录制/重播模式-无需它们。使用Mockito mocks只能做两件事-验证或存根。在执行之前进行存根,然后进行验证
  • 所有mock都是“nice”(甚至更好,因为集合返回方法返回空集合而不是null)。即使模拟很好,您也可以严格验证它们
    根据您的需要,检测任何不需要的交互
  • 用于提高可读性的显式语言:verify()和when()与expect(mock.foo())和mock.foo()的混合(不带'expect'的普通方法调用)相比。我相信你们中的一些人会觉得这个论点很主观:)
  • 简化的存根模型-存根方法始终使用存根值重放,无论调用多少次。与EasyMock的andStubReturn()和StubThrow()完全相同。此外,您还可以为不同的参数使用不同的返回值(如 在EasyMock)
  • 存根方法的验证是可选的,因为通常更重要的是测试存根值是否正确使用,而不是它来自何处
  • 验证是显式的-验证错误指向显示交互失败的代码行。顺序验证是灵活的,不需要验证每个交互
  • 自定义参数匹配器使用hamcrest匹配器,因此您可以使用现有的hamcrest匹配器。(EasyMock也可以与hamcrest集成,尽管它不是EasyMock的一部分,而是hamcrest的一部分。请参见
    hamcrest的文件)