Да нужны. Замечу, что речь идёт об
автоматизированных тестах. Эта штука просто жизненно необходима для особо функционального (базового, низкоуровнего) кода, каковой содержит сам framework Django. Но почему бы не применить тесты для сайтов? И это не просто «по приколу», а некая защита от головняка.
Часто приходится обновлять Django и сопутствующие приложения на сервере, что иногда приводит к проблемам, которые крайне нежелательны на сайтах заказчиков. И главная проблема это 500 ошибка, которая и будет показателем отказа в тексте ниже.
Итак, Django предоставляет
возможность писать тесты для приложений и это всё облегчает.
В большинстве сайтов, ничего не может обрушиться просто так, это скорее всего связано с обратно несовместимыми изменениями в Django, либо влиянием таких изменений на сторонние приложения (django-voting e.t.c.). Написав простейший тест, который проверит, а возвращает ли страница корректный код (т.е. 200) мы при первом же запуске всех тестов определим неработающие страницы, а соответственно и проблемный код.
Итак, в конце всего этого короткий код (за остальным, обратитесь к
документации):
from django.test import TestCase
class LentaTest(TestCase):
def test_index(self):
response = self.client.get('/lenta/')
self.failUnlessEqual(response.status_code, 200)
Код помещаем в appname/tests.py, а чтобы запустить тесты, делаем manage.py test appname