Unit testing Jmockit与EasyMock有何不同?哪个更好用?

Unit testing Jmockit与EasyMock有何不同?哪个更好用?,unit-testing,junit,mocking,easymock,jmockit,Unit Testing,Junit,Mocking,Easymock,Jmockit,我已经在青少年时期从事了很长时间的轻松工作。我对此非常满意,但现在我想知道EasyMocks与Jmockits有多大不同。我试着浏览他们的文档,发现语法有点不同。但我不知道他们的表现是否有什么不同。 有谁能帮我找出哪几点使他们中的一个比另一个更好?JMockit中是否有其他元素中找不到的特殊元素? 提前感谢…你可以在这里找到一篇关于它们之间差异的博文(还有mockito!): 虽然它们都有不同的语法和不同的工作方式,但您应该能够在使用任一框架进行模拟时实现所需的任何功能。您可以在此处找到一篇关于

我已经在青少年时期从事了很长时间的轻松工作。我对此非常满意,但现在我想知道EasyMocks与Jmockits有多大不同。我试着浏览他们的文档,发现语法有点不同。但我不知道他们的表现是否有什么不同。 有谁能帮我找出哪几点使他们中的一个比另一个更好?JMockit中是否有其他元素中找不到的特殊元素?
提前感谢…

你可以在这里找到一篇关于它们之间差异的博文(还有mockito!):


虽然它们都有不同的语法和不同的工作方式,但您应该能够在使用任一框架进行模拟时实现所需的任何功能。

您可以在此处找到一篇关于它们之间差异的博客文章(还有mockito!):


虽然它们都有不同的语法和不同的工作方式,但您应该能够通过这两种框架实现所需的模拟功能。

JMockit和EasyMock/jMock/Mockito/PowerMock之间有许多不同之处。 主要有:

  • 对集成测试的支持:JMockit支持,与提供的类似,但也支持JavaEE。其他模拟库仅支持使用模拟对象的独立单元测试
  • 除了API之外,还有一个API(另请参见中)。其他每个模拟库都只有一个模拟API
  • 除了“模拟对象”之外,还完全支持“模拟”。其他模拟库使用它们创建的模拟对象,这些对象需要以某种方式传递给测试代码。使用EasyMock/jMock/Mockito,
    静态
    方法、构造函数和“
    新建
    -ed”对象根本无法模拟。PowerMock也支持完全模拟,但仍然专注于模拟对象(特别是,新的ed对象必须通过
    whenNew
    录制“替换”为模拟对象,而使用JMockit测试可以简单地声明
    @Mocked
    字段)
  • 支持模拟/伪造
    final
    类和方法。只有PowerMock也提供这种支持。Mockito最近添加了一个“内联mock maker”,它增加了对
    final
    s的支持,但是默认情况下它不是活动的,并且可能不那么可靠
  • 支持模拟/伪造未指定的子类和接口实现(其中测试仅声明要模拟/伪造的基类型)
  • 在mocking API中,对具有多个参数的方法的期望只能通过参数匹配器(如
    anyString
    等)记录/验证某些参数,而其他mocking API对每个参数都需要这样的匹配器
  • 同样在mockingapi中,在测试代码被执行之后,可以显式地验证期望,就像在Mockito中一样。EasyMock/jMock不支持此验证模型

  • 至于性能,与使用EasyMock/jMock/Mockito(通过子类定义完成)创建模拟对象相比,使用JMockit(通过类重新定义完成)模拟类型可能具有更高的运行时开销,而与PowerMock(通过自定义类加载器上的类定义完成)相比,可能具有更低的运行时开销。但是,只有在进行了大量模拟的情况下,您才应该注意性能上的差异,这很可能表明过度使用模拟。

    JMockit和EasyMock/jMock/Mockito/PowerMock之间有很多不同。 主要有:

  • 对集成测试的支持:JMockit支持,与提供的类似,但也支持JavaEE。其他模拟库仅支持使用模拟对象的独立单元测试
  • 除了API之外,还有一个API(另请参见中)。其他每个模拟库都只有一个模拟API
  • 除了“模拟对象”之外,还完全支持“模拟”。其他模拟库使用它们创建的模拟对象,这些对象需要以某种方式传递给测试代码。使用EasyMock/jMock/Mockito,
    静态
    方法、构造函数和“
    新建
    -ed”对象根本无法模拟。PowerMock也支持完全模拟,但仍然专注于模拟对象(特别是,新的ed对象必须通过
    whenNew
    录制“替换”为模拟对象,而使用JMockit测试可以简单地声明
    @Mocked
    字段)
  • 支持模拟/伪造
    final
    类和方法。只有PowerMock也提供这种支持。Mockito最近添加了一个“内联mock maker”,它增加了对
    final
    s的支持,但是默认情况下它不是活动的,并且可能不那么可靠
  • 支持模拟/伪造未指定的子类和接口实现(其中测试仅声明要模拟/伪造的基类型)
  • 在mocking API中,对具有多个参数的方法的期望只能通过参数匹配器(如
    anyString
    等)记录/验证某些参数,而其他mocking API对每个参数都需要这样的匹配器
  • 同样在mockingapi中,在测试代码被执行之后,可以显式地验证期望,就像在Mockito中一样。EasyMock/jMock不支持此验证模型

  • 至于性能,与使用EasyMock/jMock/Mockito(通过子类定义完成)创建模拟对象相比,使用JMockit(通过类重新定义完成)模拟类型可能具有更高的运行时开销,而与PowerMock(通过自定义类加载器上的类定义完成)相比,可能具有更低的运行时开销。但是,只有在进行大量模拟的情况下,您才应该注意性能上的差异,这很可能表明过度使用模拟。

    通过文档,您发现了与EasyMock相比的几个优势。jmockit确实和明显地介绍了