代码之家  ›  专栏  ›  技术社区  ›  akshit bhatia

Jmockit和EasyMock有何不同?哪个更好用?

  •  0
  • akshit bhatia  · 技术社区  · 7 年前

    我在青少年时期就一直致力于轻松工作。我对此很满意,但现在我想知道EasyMocks和Jmockits有多不同。我查看了他们的文档,发现语法有点不同。但我不知道他们的表现是否有什么不同。

    2 回复  |  直到 7 年前
        1
  •  2
  •   Rogério    7 年前

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

    1. 支持集成测试:JMockit支持 out-of-container integration testing approach ,类似于 Spring Test module 提供但也支持Java EE。其他模拟库仅支持使用模拟对象的独立单元测试。
    2. "faking" API(另请参见 xUnit Patterns mocking 应用程序编程接口。其他每个模拟库都只有一个模拟API。
    3. 除了“mock”之外,还完全支持“mocking” “。其他模拟库使用它们创建的模拟对象,这些对象需要以某种方式传递给被测代码。使用EasyMock/jMock/Mockito, static 方法、构造函数和“ new -“ed”对象根本无法模拟。PowerMock也支持完全模拟,但仍然专注于模拟对象(特别是,新的ed对象必须通过 whenNew 录制,而使用JMockit测试可以简单地声明 @Mocked
    4. 支持模仿/伪造 final 类和方法。只有PowerMock也提供了这种支持。Mockito最近添加了一个“内联模拟生成器”,它增加了对 最终的
    5. 支持模拟/伪造未指定的子类和接口实现(其中测试仅声明要模拟/伪造的基类型)。
    6. anyString 等)仅适用于 一些 参数,而其他模拟API需要这样的匹配器 每一个 单参数。
    7. 已证实的 在测试代码被执行之后,就像在Mockito中一样。EasyMock/jMock不支持此验证模型。

    至于性能,用JMockit模拟类型(通过 类别重新定义 )与使用EasyMock/jMock/Mockito创建模拟对象相比,可能有更高的运行时开销(通过 ),与PowerMock相比更低(通过 类别定义

        2
  •  1
  •   petarkolaric    7 年前

    你可以在博客上找到他们之间的差异(还有mockito!)在这里: http://www.baeldung.com/mockito-vs-easymock-vs-jmockit