【发布时间】:2018-01-25 15:21:39
【问题描述】:
我正在和我的讲师争论——他坚持认为可以将一个对象作为 side_effect 的值传递给 mock.patch 以模拟程序中的原始函数,同时仍将参数传递给该函数——在这种特殊情况下,将它们存储在对象中。
基本上:
with mock.patch('function_to_be_mocked', side_effect=my_object) as m:
function_to_be_mocked(arg1, arg2)
这两行代码之后,arg1和arg2将作为属性存储在my_object中。
然而,根据side_effect 的文档,可以传递给 side_effect 的唯一对象是异常或可迭代对象,它们都不关心传递给原始函数的参数。
我试图指出这个错误,但我的讲师说有办法解决它。
真的有办法吗,还是只是我的讲师拒绝承认他的错误?
【问题讨论】: