【问题标题】:How to test a Queryset in Django如何在 Django 中测试查询集
【发布时间】:2020-06-05 01:56:13
【问题描述】:

我对 Django 很陌生,需要帮助来测试我的视图模块。现在视图只返回数据库中的所有对象:

def get_queryset(self):
    return people.objects.all()

我想测试视图是否返回所有对象。我知道我应该使用 assertQuerysetEqual 并且我已经阅读过它,但仍然不确定如何实现它,因为我对文档了解不多。如果有人可以展示一些示例或解释,将不胜感激。

【问题讨论】:

  • 您是否要测试渲染的内容?或者其他返回 people 查询集的函数?
  • 我想测试一个返回 people Queryset 的函数

标签: python django unit-testing django-views


【解决方案1】:

考虑到您正在使用基于类的视图。您可以执行以下步骤来测试get_queryset 方法。测试其他功能的过程应该类似。

  1. 使用来自 django 的请求工厂创建请求对象。

from django.test import RequestFactory


request = RequestFactory().get('/view-path')
  1. 创建视图实例

view = YourView()
  1. 附加查看请求

view.request = request
  1. 调用您的方法并比较结果。
qs = view.get_queryset()

整个测试用例看起来像这样

def test_get_queryset(self):
    request = RequestFactory().get('/view-path')
    view = YourView()
    view.request = request

    qs = view.get_queryset()

    self.assertQuerysetEqual(qs, people.objects.all())

【讨论】:

    猜你喜欢
    • 2012-03-29
    • 1970-01-01
    • 2013-11-26
    • 2017-05-05
    • 2021-09-28
    • 2011-11-13
    • 2012-10-21
    • 2016-08-07
    • 1970-01-01
    相关资源
    最近更新 更多