Ответ 1
Это была статья, которую я нашел полезной: http://toastdriven.com/blog/2011/apr/10/guide-to-testing-in-django/. Вот хорошее резюме того, что нужно проверить:
Другим распространенным препятствием для разработчиков/дизайнеров, новых для тестирования, является вопрос о том, что я должен проверить (или не должен)? " Пока нет жесткие и быстрые правила здесь, которые аккуратно применяются повсюду, есть некоторые общие рекомендации, которые я могу предложить при принятии решения:
Если рассматриваемый код является встроенной функцией/библиотекой Python, не проверяйте его. Примеры, такие как библиотека datetime.
Если этот код встроен в Django, не проверяйте его. Примеры, например, поля на модели или тестирование встроенного template.Node отображает включенные теги.
Если ваша модель имеет собственные методы, вы должны проверить это, как правило, с помощью модульных тестов.
То же самое касается пользовательских представлений, форм, тегов шаблонов, контекстных процессоров, промежуточного программного обеспечения, команд управления и т.д. Если вы внедрили бизнес-логику, вы должны проверить свои аспекты кода.
Итак, для вашего примера не было бы ничего, чтобы протестировать, пока вы не напишете некоторые пользовательские функции.
На мой взгляд, тестирование ссылок ForeignKey
и ManyToManyField
будет подпадать под вторую категорию (код, встроенный в Django), поэтому я бы не тестировал их, так как вы действительно проверяете, работает ли Django должным образом. Если у вас есть метод, который создает экземпляр вашего продукта, включая внешние отношения и M2M, вы можете проверить, что данные были созданы, что будет проверять ваш пользовательский метод, а не функциональность Django.
Используя парадигму TDD, тесты построены для проверки бизнес-логики и требований к дизайну.