Python/Django тестирование (unittest)

wikibooks.org: Перевод Python документации, раздел unittest.

python.org: Оригинальная статья (англ.).

Статьи:

Habrahabr: Python. Тестирование. Начало.

Habrahabr: Тестирование проектов Django.


Другие инструменты тестирования: pytest, nose, attest.

Инструмент для определения покрытия кода тестами: coverage.py (интерграция coverage в Django)


На закуску, понравился комментарий под статьей:

думаю проблема не в django-webtest, а в том, что:

> Я сам с трудом понимаю какие там имена у полей формы.

написание теста является одним из способов формализации требований. тест обязан ломаться, когда требования меняются и код рефачится — это фича. :)

если переделка кода вызывает ломку тестов, которые по логике не связанны с текущим рефакторингом, значит сами тесты составлены неправильно — проблема или в неправильно декомпозиции или в неправильно выбранном уровне абстракции. обычно это происходит, когда тест безосновательно пытается тестировать требования, которые не связаны с фичей, либо привязывается к каким-то низкоуровневым деталям реализации.