我的模特
class Mymodel(models.Model):
name = models.CharField()
age = models.IntegerField()
例如,在我的视图中,我使用此模型作为
class MyView(generics.ListAPIView):
serializerClass = MySerrializer
def get(self, req, *args, **kwargs):
res = Mymodel.objects.filter(age=25)
serializer = self.get_serializer(res, many=true)
return Response(serializert.data)
我正在为这个视图写一个测试用例
@mock.patch('views.Mymodel.objects.filter')
def test_MyView(filtered_result):
filtered_result.return_value = ???
现在我应该如何设置返回值,如果它是一个Mymodel.objects.get我会像这样设置
filtered_result.return_value = Mymodel(name="xyz", age=30)
现在,对于Mymodel.objects.filter,我是否必须在django QuerySet中打包一些Mymodel示例?
1条答案
按热度按时间xqkwcwgp1#
要做到这一点,你可以在打补丁之前创建一个假模型,假设你没有任何数据进行测试,你可以为过滤器创建一个新的模型示例:
然后将这个FakeModel作为
return_value=FakeModel()
传递给你的补丁。因此,您将为
mock_my_model
变量传递该值。最后,您可以将此
mock_my_model
变量传递给mock_my_model.filter.return_value
。