当前位置:  开发笔记 > 编程语言 > 正文

模拟和猴子修补有什么区别?

如何解决《模拟和猴子修补有什么区别?》经验,为你挑选了1个好方法。

我使用python,我对测试有点新意.我经常看到测试用本地方法替换外部依赖项,如下所示:

import some_module

def get_file_data():
  return "here is the pretend file data"

some_module.get_file_data = get_file_data

# proceed to test

我在这个问题中看到这被称为"猴子修补" .我还看到"模拟"这个词与"钱修补"或者似乎非常相似的场景一起使用了很多.

这两个概念有什么区别吗?



1> René Pijl..:

Monkey修补在运行时将另一个函数/方法/类替换为测试purpses,修复bug或以其他方式改变行为.

该unittest.mock图书馆利用猴子补丁的由模拟对象测试来代替你的软件的一部分.它提供了编写聪明的单元测试的功能,例如:

它记录了如何调用模拟对象,因此您可以使用断言测试代码的调用行为.

patch()实际猴子修补的方便装饰.

您可以使模拟对象返回特定值(return_value),引发特定异常(side_effect).

嘲弄'魔法'(例如__str__).

例如,您可以使用模拟来替换客户端中的网络I/O(urllib,请求),因此单元测试可以在不依赖外部服务器的情况下工作.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有