【发布时间】:2017-02-10 04:24:41
【问题描述】:
我正在为函数 f 编写单元测试,该函数导入单元测试不(直接)与之交互的其他函数/类。有什么方法可以从单元测试中修补这些功能(可能在 set_up() 中)?
作为参考,我使用的是 Python 2.7。
从单元测试中,我想修改/修补助手的行为。
在单元测试文件中:
def test_some_function():
assert(some_function() == True)
在 some_function() 定义中
import helper
def some_function():
foo = helper.do_something()
return foo & bar
【问题讨论】:
-
请提供您的方案的minimal reproducible example。即显示您的代码和测试代码并解释您遇到的问题。
-
已编辑。希望这就足够了。我不认为我可以粘贴更多的代码,因为这是一个普遍的问题。我知道我可以在单个文件中进行修补等,但我希望能够更改单元测试的行为。我尝试使用 set_up() 补丁命令,但无法正常工作。
-
那么,你想控制
helper.do_something做什么?换句话说,您正在寻找模拟它来控制它的返回来为some_function编写单元测试?因为这绝对是可行的 -
没错!我的第一个问题是这是否可能,所以感谢您澄清这一点。 :) 我该如何去做呢?我已经根据不同的博客尝试了 MagicMock、@patch 等,但似乎没有任何改变单元测试中的行为,只是在本地。
标签: python python-2.7 unit-testing monkeypatching