代码之家  ›  专栏  ›  技术社区  ›  Chris Lercher

jmockit有任何缺点吗?

  •  16
  • Chris Lercher  · 技术社区  · 14 年前

    这个 comparison 表明,jmockit比其他框架有几个优势。

    其他人(jmock、easymock、mockito、unitils、powermock+mockito/easymock)对jmockit还有什么好处吗?

    2 回复  |  直到 11 年前
        1
  •  14
  •   rogerdpack    11 年前

    三个缺点:

    • 必须使用Java代理来执行字节码检测。
    • 不能使用Eclipse附带的签名junit.jar文件。
    • 您必须学习模拟API。(与存根对象相反)

    你可以经常讨论是否能够像jmockit那样模拟最后一个类是件好事。除非它是遗留代码,否则重构通常是更好的选择。

    对于类似Eclipse的IDE,我发现自己最近使用工具支持在测试类中生成存根的频率比模拟(jmockit、mockito等)要高。这种方法的优点是非常简单。当你的团队中有许多开发人员,其中一些人不喜欢测试,并且没有学习模拟框架的动力时,这一点特别好。另外,存根实现没有框架限制!

    如果你愿意选择留茬,你应该去看看罗伯特·C·马丁的博客上关于嘲弄和留茬的内容。 here here

    否则,它看起来很好!虽然我只有JMock的经验,但我很容易掌握JMockit的基本知识。

        2
  •  16
  •   codebox    13 年前

    我最近采用了一个使用jmockit的项目,我认为由于库能够模拟出静态和私有方法,代码的质量肯定会受到影响。

    测试非常脆弱,因为私有方法中包含的实现细节正在测试(因此如果我更改 怎样 这个类做了一些可以破坏测试的事情,即使 什么 类没有受到影响)。

    代码中也充满了对静态方法的调用——如果开发人员没有能力模拟这些方法,那么我认为他们会更加努力地去解偶一些更好的东西。