Написание интеграционного теста Django ListView
Как написать интеграционный тест следующего представления списка в django? Мне нужен пример.
class HomeView(ListView):
model = Donor
template_name = 'recipient/home.html'
context_object_name = 'donors'
paginate_by = 10
def get_queryset(self):
form = self.request.GET.get('q')
if form:
return Donor.objects.filter(
Q(name__icontains=form) |
Q(location__icontains=form) |
Q(sex__icontains=form) |
Q(age__icontains=form) |
Q(blood_group__icontains=form)
).order_by('id')
queryset = Donor.objects.all().order_by('id')
return queryset
def get_context_data(self, **kwargs):
kwargs['q'] = self.request.GET.get('q')
return super().get_context_data(**kwargs)
Django rest framework предоставляет очень удобную тестовую структуру.
В своем тесте вы должны сымитировать запрос API к вашей конечной точке, а затем проверить, соответствует ли ответ запроса тому, что вы ожидали.
В качестве примера. в своем тесте вы можете создать несколько экземпляров Donor
для запроса, сделать запрос и затем посмотреть, содержит ли ответ доноров, которых вы ожидали. Вы можете добавить фильтры к запросу, чтобы проверить, работают ли они, например.