我想测试一个在同一个模型上有两个查询的方法,我希望每个查询返回不同的结果。
def method_to_test():
qs1 = Order.objects.filter()
qs2 = Order.objects.filter()
@mock.patch('Order.objects.filter')
def test_method_to_test(self, mock_qs):
mock_qs.return_value = MagicMock(side_effect=[Order(id=1), Order(id=2)])
method_to_test()
但查询未返回Order(id=1)
或Order(id=2)
正在返回Mock对象。如何设置side_effect
以返回我想要的对象。
我看到它正在设置side_effect
内部@mock.patch
装饰器,但我想在方法内部进行。
答案 0 :(得分:0)
mock_qs.side_effect = [Order(id=1), Order(id=2)]