为什么APIClient返回空数据响应Django RF

问题描述 投票:-1回答:1

我正在尝试为api做一些测试,这里是代码:

tests.朋友

class APITest(APITestCase):

    def setUp(self):
        self.api_client = APIClient()

    def test_get_lists(self):
        response = self.api_client.get('/api/t/')
        print(response.data)
        self.assertEqual(response.status_code, status.HTTP_200_OK)


    def test_post_list(self):
        response = self.api_client.post('/api/t/',
                                data={'user':1, 'title':'AAA'})
        print(response.data)
        self.assertEqual(response.status_code, status.HTTP_201_CREATED)

view set.朋友

class TableViewset(ModelViewSet):
    queryset = Table.objects.all()
    serializer_class = TableSerializer

serialize认识.朋友

class TableSerializer(serializers.ModelSerializer):
    lists = ListSerializer(many=True, read_only=True, required=False)

    class Meta:
        model = Table
        fields = ('id', 'user', 'title', 'id', 'timestamp', 'lists')

    def create(self, validated_data):
        table = Table.objects.create(**validated_data)
        return table

    def update(self, instance, validated_data):
        instance.title = validated_data.get('title', instance.title)
        return instance

当我想在test.py中打印响应数据时,我得到一个空数组并且可以测试响应内容:

Response status_code=200, "application/json"
django django-rest-framework
1个回答
0
投票

好的,所以解决方案是在测试中创建模型,因为我们在进行测试时无法使用db中的模型

© www.soinside.com 2019 - 2024. All rights reserved.