【发布时间】:2011-02-28 05:12:15
【问题描述】:
comparison 表明,JMockit 与其他框架相比有几个优势。
与 JMockit 相比,其他其中之一(JMock、EasyMock、Mockito、Unitils、PowerMock + Mockito/EasyMock)是否还有任何优势?
【问题讨论】:
标签: java unit-testing jmock jmockit mockito
comparison 表明,JMockit 与其他框架相比有几个优势。
与 JMockit 相比,其他其中之一(JMock、EasyMock、Mockito、Unitils、PowerMock + Mockito/EasyMock)是否还有任何优势?
【问题讨论】:
标签: java unit-testing jmock jmockit mockito
我最近采用了一个使用 JMockit 的项目,我认为由于库能够模拟静态和私有方法,代码的质量肯定会受到影响。
测试非常脆弱,因为包含在私有方法中的实现细节正在被测试(所以如果我改变 如何 类做某事它可能会破坏测试,即使 what班级确实没有受到影响)。
代码中还充斥着对静态方法的调用——如果开发人员没有能力模拟这些方法,那么我认为他们会付出更多努力来更好地解耦。
【讨论】:
三个缺点:
您总是可以讨论能够像 JMockit 那样模拟最终类是否是一件好事。除非是遗留代码,否则重构通常是更好的选择。
对于像 Eclipse 这样的 IDE,我发现自己使用工具支持在测试类中生成存根比最近的模拟(JMockit、Mockito 等)更频繁。这种方法的优点是非常简单。当您的团队中有许多开发人员并且其中一些人不喜欢测试并且没有学习模拟框架的动力时,这尤其好。此外,存根实现没有框架限制!
如果您愿意将存根作为替代方案,您应该查看 Robert C. Martin 关于模拟和存根的博客 here 和 here
否则,它看起来很不错!虽然我只有 JMock、EasyMock 的经验和 JMockit 的基本知识。
【讨论】: