я могу проверить по типу
self.assertEqual(resolver.func, IndexView)
А если IndexView представленный классом наследованным от View, как я могу его протестировать в TestCase?
test client
Простите, не совсем понимаю. Тест у меня следующего вида def test_main_page_url_resolves_main_page_view(self): resolver = resolve('/') self.assertEqual(resolver.view_name, 'main_page') self.assertEqual(resolver.url_name, 'main_page') self.assertEqual(resolver.func, IndexView) Я предполагал, что мне необходимо лишь изменить что-то в этой строке: self.assertEqual(resolver.func, IndexView)
Что ты вообще тут тестируешь?
соответствие вызываемого класса из view.py
Ерунда какая-то
Есть смутное ощущение, что этот тест просто не нужен
возможно. Но хотел бы разобраться по этому моменту, так как если бы view.py у меня была представлена функциями по типу def func(request): то ошибки бы на тесте не возникло. А когда представлена классами, будто resolve не имеет необходимого метода для тестирования соответствия вызываемого класса, а соответственно, скорей всего Вы правы, что смысла тестировать это не имеет.
Потому что тестировать надо как код работает, а не как он написан
response = ClassView()(request), не?
Там тест клиент есть
Как сказали выше, нужен тест клиент, раз ты такое тестируешь, тестируй наверняка
Первый раз тесты пишу. Вчера соображал, что вообще в view необходимо тестировать. Сегодня мысли вроде собрались и что-то даже получилось, но вот на этом произошел затык. + Я декомпозирую sql запрос в view, и как это тестировать, не совсем понимаю. И по поводу тестового клиента пока тоже не в курсе. Буду разбираться. Спасибо.
Смотри какая штука. Тесты нуюны, чтобы гарантировать что код работает так как задумано. При этом должна быть некоторая свобода по тому как именно этот код написан
Обсуждают сегодня