python:指定模拟模块的属性的返回值

时间:2018-11-21 09:21:16

标签: python python-3.x unit-testing python-unittest python-mock

我有一个具有多个属性的模块ex,另一个有这样的属性的模块

import ex
def use_ex(attr):
    z = getattr(ex,attr)
    #Do something with z

在测试文件中,我模拟了ex,因为我无法将其导入测试环境中。

sys.modules['ex'] = Mock()

在编写use_ex的测试时如何指定ex.attr的return_value?

1 个答案:

答案 0 :(得分:0)

您可以这样指定模拟返回值:

return_value = whatyouwant
my_mock = Mock()
my_mock.return_value = return_value
sys.modules['ex'] = my_mock