Jad*_*d S 9 python testing unit-testing monkeypatching mocking
我使用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
Run Code Online (Sandbox Code Playgroud)
我在这个问题中看到这被称为"猴子修补" .我还看到"模拟"这个词与"钱修补"或者似乎非常相似的场景一起使用了很多.
这两个概念有什么区别吗?
Monkey修补在运行时将另一个函数/方法/类替换为测试purpses,修复bug或以其他方式改变行为.
该unittest.mock图书馆利用猴子补丁的由模拟对象测试来代替你的软件的一部分.它提供了编写聪明的单元测试的功能,例如:
patch()实际猴子修补的方便装饰.return_value),引发特定异常(side_effect).例如,您可以使用模拟来替换客户端中的网络I/O(urllib,请求),因此单元测试可以在不依赖外部服务器的情况下工作.