Python 3.x Python unittest,mock return_value为每个调用返回不同的值
我想测试一个在同一个模型上有两个查询的方法,并且我希望每个查询返回不同的结果Python 3.x Python unittest,mock return_value为每个调用返回不同的值,python-3.x,unit-testing,Python 3.x,Unit Testing,我想测试一个在同一个模型上有两个查询的方法,并且我希望每个查询返回不同的结果 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_eff
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.patch
decorator内部设置副作用,但我想在方法内部设置它。模拟副作用=[顺序(id=1),顺序(id=2)]