Как проверить Queryset в Django - PullRequest
       3

Как проверить Queryset в Django

0 голосов
/ 20 февраля 2020

Я новичок в Django и мне нужна помощь с тестированием моего модуля просмотра. Прямо сейчас представление возвращает только все объекты из БД:

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

Я хочу проверить, что представление возвращает все объекты. Я знаю, что я должен использовать assertQuerysetEqual, и я читал об этом, но все еще не уверен, как реализовать это, потому что я не мог многое понять из документации. Был бы очень признателен, если бы кто-то мог показать некоторые примеры или объяснить.

1 Ответ

2 голосов
/ 20 февраля 2020

Учитывая, что вы используете представления на основе классов. Вы можете выполнить следующие шаги для проверки метода get_queryset. Процесс тестирования других функций должен быть аналогичным.

  1. Создать объект запроса, используя фабрику запросов из django.

from django.test import RequestFactory


request = RequestFactory().get('/view-path')
Создание экземпляра представления

view = YourView()
Прикрепить запрос к просмотру

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