Возникли проблемы с завершением представлений на основе класса Unittest в DJANGO - PullRequest
0 голосов
/ 31 мая 2019

Как я могу завершить этот юнит-тест с django? Я начинаю работать с unittest, и по какой-то причине я не могу успешно завершить первый тест на основе классов.

models.py

class BookListView(ListView):
    model = Book
    context_object_name = 'books'
    template_name = 'snippets/list.html'

urls.py

from django.contrib import admin
from django.urls import path, include
from .views import (BookListView)
from . import views


app_name = 'snippets'
urlpatterns = [
    path('', views.index, name='book_list'),

views.py

from django.test import TestCase, Client
from django.urls import reverse
from snippets.models import Book
import json



class TestViews(TestCase):

    def setUp(self):
        self.client = Client()

    def test_book_list_GET(self):
        response = self.client.get(reverse('snippets:book_list'))
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'snippets/list.html')

Ниже происходит сбой обратной связи от терминала

self.assertEqual(response.status_code, 200)
AssertionError: 404 != 200

----------------------------------------------------------------------
Ran 1 test in 0.061s

FAILED (failures=1)
Destroying test database for alias 'default'...

1 Ответ

0 голосов
/ 31 мая 2019

Как уже прокомментировано:

class TestViews(TestCase):

    def setUp(self):
        self.client = Client()

    def test_book_list_GET(self):
        response = self.client.get('snippets:book_list')
        self.assertEqual(response.status_code, 200)
        self.assertTemplateUsed(response, 'snippets/list.html')

вам необходимо передать здесь URL, с django.urls.utils.reverse, который даст вам относительный URL для представления

...