【问题标题】:How can I write a unit test with pagination in django如何在 django 中编写带有分页的单元测试
【发布时间】:2019-05-31 19:37:35
【问题描述】:

我想在 django rest 框架中为我的项目编写单元测试,但我无法将我的 res.data 与我的 serializer.data 进行比较 这是我的一个对象品牌的 json:

{
  "count": 1,
  "next": null,
  "previous": null,
  "results": [
    {
      "url": "http://localhost:8000/shops/tags/1/",
      "id": 1,
      "name": "PS4",
      "link": "https://www.playstation.com"
    }
  ]
}

这是我的单元测试:

BRANDS_URL = reverse('brands-list')
    def test_retrieve_brand_list(self):
        """Test retrieving a list of brands"""
        Brand.objects.create(name='Bestbuy', link='https://bestbuy.ca')
        Brand.objects.create(name='Amazon', link='https://amazon.ca')
        res = self.client.get(BRANDS_URL)

        brands = Brand.objects.all().order_by('-name')

        context = {'request': RequestFactory().get('/')}
        serializer = BrandsSerializer(brands, context=context, many=True)

        self.assertEqual(res.status_code, status.HTTP_200_OK)
        self.assertEqual(res.data, serializer.data)

我的序列化器:

class BrandsSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = Brand
        fields = ('url', 'id', 'name', 'link')

如何将计数、下一个、上一个和结果添加到我的 serializer.data ? 我怎样才能拥有像 res.data 这样的 serializer.data ? 我有点迷茫,我找不到解决办法

【问题讨论】:

    标签: python django django-rest-framework


    【解决方案1】:

    你可以试试这个:

    *self.assertEqual(res.data['results'], serializer.data)* 
    

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 2023-02-03
      • 2010-10-02
      • 1970-01-01
      • 1970-01-01
      • 2012-02-03
      • 2019-01-28
      • 2014-09-14
      • 2018-04-17
      相关资源
      最近更新 更多