Python 如何在Django中测试Queryset

Python 如何在Django中测试Queryset,python,django,unit-testing,django-views,Python,Django,Unit Testing,Django Views,我是Django的新手,需要帮助测试我的视图模块。现在,视图仅返回数据库中的所有对象: def get_queryset(self): return people.objects.all() 我想测试视图是否返回所有对象。我知道我应该使用assertQuerysetEqual,我也读过它,但仍然不知道如何实现它,因为我无法从文档中了解太多。如果有人能举例说明,我将不胜感激 考虑到您使用的是基于类的视图。您可以执行以下步骤来测试get\u queryset方法。测试其他功能的过程应该更相

我是Django的新手,需要帮助测试我的视图模块。现在,视图仅返回数据库中的所有对象:

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

我想测试视图是否返回所有对象。我知道我应该使用assertQuerysetEqual,我也读过它,但仍然不知道如何实现它,因为我无法从文档中了解太多。如果有人能举例说明,我将不胜感激

考虑到您使用的是基于类的视图。您可以执行以下步骤来测试
get\u queryset
方法。测试其他功能的过程应该更相似

  • 使用来自django的请求工厂创建请求对象
  • 创建视图实例
  • 附加查看请求
  • 调用您的方法并比较结果
  • 整个测试用例看起来像这样

    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())
    

    考虑到您使用的是基于类的视图。您可以执行以下步骤来测试
    get\u queryset
    方法。测试其他功能的过程应该更相似

  • 使用来自django的请求工厂创建请求对象
  • 创建视图实例
  • 附加查看请求
  • 调用您的方法并比较结果
  • 整个测试用例看起来像这样

    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())
    

    您是否正在尝试测试渲染的内容?或者其他返回
    people
    queryset的函数?我想测试一个返回people queryset的函数,您想测试呈现的内容吗?或者其他一些返回
    people
    queryset的函数?我想测试一个返回people queryset的函数
    
    view.request = request
    
    
    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())