模拟深层嵌套的方法调用

时间:2018-03-27 12:11:54

标签: python mocking

对于测试,我需要模拟一些缓慢的外部调用。

这是我目前的测试设置,看起来很臃肿和丑陋。

my_obj.child_object.meth1_call().meth2_call

child_object在测试运行时不可用,但

myhandler
必须在测试期间调用

并返回custom_list。

引用Raymond Hettinger ......"必须有更好的方法!"。

与上述设置相比,有什么快捷方式或更好的方法吗?

1 个答案:

答案 0 :(得分:0)

与上下文管理器的其他丑陋?

my_obj.child_object = mock.Mock()
with mock.patch('__main__.my_obj.child_object.meth1_call().meth2_call')\
    as m:
    m.return_value = [custom_list]