【问题标题】:What is the difference between mocking and simulating virtual services?模拟和模拟虚拟服务有什么区别?
【发布时间】:2019-08-15 14:50:37
【问题描述】:

我一直在研究CodeSV,这是一个免费的 Java 库,可以在单元测试中设置虚拟服务。我不太明白那和嘲笑之间的区别。根据 CodeSV 的作者的说法,他们的库可以实现的不仅仅是模拟。一种方法相对于另一种方法的优势是什么?

【问题讨论】:

  • 来自他们的文档:codesv.io/index.php/2017/10/30/…
  • 也就是说,这听起来更像是夸张:模拟/存根意味着您正在处理您的代码,例如,您将模拟/存根服务调用返回您期望的数据。他们的版本建立了一个真实的服务器,并允许您定义响应(集成测试,例如,您的代码将进行实际的 HTTP 调用)。这不是一个单元测试,这是一个集成测试——这可能是也可能不是你想要的。但它可能会为您节省一些精力(需要注意的是其他工具也可以做到这一点)。
  • 谢谢 Dave Newton,我确实看过一些文档和他们 Github repo 上的一些课程,对于像我这样的初学者来说仍然很困惑:)
  • 谢谢,我想我现在开始理解它了,他们在他们的网站上说他们正在使用它进行单元测试codesv.io 你认为他们的意思是集成测试吗?
  • 我无法知道它们是什么意思——但如果代码是在进行实际的 HTTP 调用,那么它就是一个集成测试,因为您跨越了应用程序边界。

标签: java unit-testing testing mocking integration-testing


【解决方案1】:

我接受第二条评论作为对我问题的回答。

Mock 将用于单元测试。

模拟虚拟服务将用于集成测试,因为它充当服务器并且正在进行实际的 HTTP 调用。

【讨论】:

    猜你喜欢
    • 2011-10-09
    • 2011-10-09
    • 2011-11-08
    • 2015-06-24
    • 2010-12-07
    • 2016-04-16
    • 2011-03-28
    相关资源
    最近更新 更多