gpt4 book ai didi

unit-testing - 为什么我们需要像 Easymock 、 JMock 或 Mockito 这样的模拟框架?

转载 作者:行者123 更新时间:2023-12-04 02:41:25 26 4
gpt4 key购买 nike

我们在单元测试中使用手写 stub ,我正在探索在我们的项目中是否需要像 EasyMock 或 Mockito 这样的 Mock 框架。

我没有找到从手写 stub 切换到 Mocking 框架的令人信服的理由。

任何人都可以回答为什么人们已经在使用手写模拟/ stub 进行单元测试时选择模拟框架。

谢谢

最佳答案

简单的答案是我们不要需要他们。

我们也不需要其他现有的框架,但使用 Mocking 框架让我们的生活变得更美好 更容易 .作为开发人员,我们可以将更多时间花在手头的问题上,而不是创建或执行模拟框架可以做的事情。

"I do not find a compelling reason for switching to Mocking frameworks from hand written stubs."



我完全一样。为什么我要费心学习模拟框架?手写 stub 做得很好。

我想到了几点,主要是因为一段时间后您的测试因测试 stub 而变得模糊不清。您在使用手写 stub 时所指的内容称为测试扩展。您可以扩展代码以启用模拟框架的功能。换句话说,您将代码写入 stub ,或者根据发生的情况返回值。这需要时间和精力。更别说空间了。模拟框架可以在几行中完成所有这些。

模拟框架的好处是:
  • 更容易(主观,但过一段时间你就不会写手写实现了)
  • 更少的代码(框架允许您在几行而不是完整的类声明中创建模拟)
  • 遵循 DRY(您最终不会重复模拟实现)

  • 当您需要模拟对象时,最大的好处是。必须手写代码来检查一个方法是否被调用,调用了多少次等等,这本身就是一个小任务。如果其他人已经这样做了,并创建了一个经过全面测试、记录良好的框架,那么不使用它是没有意义的。就像任何框架一样,没有它您也可以正常工作,但有时使用正确的工具会使工作变得更容易。

    关于unit-testing - 为什么我们需要像 Easymock 、 JMock 或 Mockito 这样的模拟框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2765094/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com