我正在使用 pytest3.7 进行测试。我想模拟res
,这是来自的返回值get_res_function
。res.property1[key1][keyN].property2
是我要模拟的值。这是我的测试:
@mock.patch("mypkg.get_res_function")
def test_function(mock_res):
returner = mock.MagicMock()
returner.property1["key1"]["key2"].property2 = "11111"
returner.property1["key1"]["key3"].property2 = "22222"
mock_res.return_value = returner
但是,我想模拟的两个值都只使用第一行模拟的值,这意味着mock_res.property1["key1"]["key2"].property2 = "11111", mock_res_property1["key1"]["key3"].property2 = "11111"
如果在测试代码中反转它,意味着将“22222”放在“11111”之前,
returner.property1["key1"]["key2"].property2 = "22222"
returner.property1["key1"]["key3"].property2 = "11111"
那么所有结果都是“22222”,有什么问题?