Tom*_*Tom 6 unit-testing mocking stub service-virtualization
我目前正在调查难以进入的领域的单元测试(这是一个非常高级的观点,我知道)并且我遇到了这个问题:存根/模拟或服务虚拟化?
我正在阅读以寻求答案,但我能找到的唯一资源似乎来自SV供应商(他们显然有偏见).
当一个人比另一个人更合适时,有人能想到这些例子,为什么?如果答案是"它取决于",那么请建议为什么/什么.似乎可以通过任何一种方式获得相同的结果 - 这是时间问题(开发)或可用资金(GreenHat等并不便宜!).
提前致谢!
编辑:
检查下面发布的其中一个链接(1)后,我认为这就是我所得到的:
"虚拟服务只是你可以自己创建的测试存根.
虽然您可以编写自己的存根,但是一旦您通过非常简单的行为,在整个软件开发生命周期中模拟您依赖的所有系统的工作量和成本就会变得非常大.服务虚拟化要求自动化,因为模拟和建模可以通过软件的直接观察来进行,而不需要手动编码和调整.否则,您可能会花费尽可能多的时间来维护存根环境,就像构建和测试应用程序功能本身一样."
那么基本上和任何工具一样,是吗?
小智 5
很好的问题。基本上,存根将测试套件与环境断开,服务虚拟化模拟环境,以便更好地体现测试的真实意图。
\n\n更详细...
\n\n存根为对象、方法或函数提供替换实现,以消除外部依赖性。存根通常在单元和组件测试期间用于两个主要目的:\n 1) 将被测代码与集成环境隔离\n 2) 在无法访问外部资源或有问题的方法时使测试能够继续进行/函数/对象。
\n\n如果您尝试编写单元测试并需要替换对数据库、外部库(例如文件 I/O)或其他系统 API 的简单调用,存根可能非常适合您的需求。
\n\n虽然存根/模拟通常用于 \xe2\x80\x9cskip\xe2\x80\x9d 不可用的系统组件,但服务虚拟化允许团队成员模拟环境(或特定组件)并将其行为提供给整个团队。例如,服务虚拟化可用于模拟正在发展、尚不可用或难以访问/配置的依赖组件(例如第 3 方服务、数据库、大型机、打包应用程序等)的行为。测试。
\n\n服务虚拟化可以代表比简单的存根和模拟更真实的行为。如果您可以访问依赖的应用程序,则可以通过从实时系统进行记录来捕获其在“虚拟资产”中的当前行为。或者,您可以对代表预期行为的虚拟资产进行建模。然后,您可以通过参数化其条件行为、性能标准和测试数据来配置该虚拟资产。此外,您可以轻松修改虚拟资产,以生成适当的故障条件、异常等分类,应执行这些故障条件、异常等,以验证整个系统行为。
\n\n我工作的公司 Parasoft 解决了这两个用例。我们的开发测试平台有助于单元测试的存根生成和管理,而我们荣获 Jolt 奖的 Parasoft Virtualize 产品提供服务虚拟化。有关详细信息,请参阅http://www.parasoft.com/service-virtualization和http://www.parasoft.com/development-testing 。
\n| 归档时间: |
|
| 查看次数: |
5759 次 |
| 最近记录: |