Я не идеален в тестировании, но несколько мыслей:
По сути, вы должны проверить каждую функцию, метод, класс, что угодно, что вы написали сами.
Это означает, что вам не нужно тестировать функции, классы и т. Д., Которые предоставляет инфраструктура.
Тем не менее, быстрая проверка ваших тестовых функций:
test_detail_status_code
и test_list_status_code
:
Хорошо, чтобы проверить, правильно ли вы настроили маршрутизацию. Еще важнее, когда вы предоставляете собственную реализацию get_absolute_url()
.
test_list_numer_of_items
Хорошо, если определенное количество элементов должно быть возвращено представлением. Нет необходимости, если номер не важен (то есть произвольно).
test_detail_template
и test_list_template
:
Хорошо, чтобы проверить, правильно ли установлены переменные шаблона.
Все остальные функции: необязательно.
Здесь вы в основном тестируете, работает ли ORM должным образом, работают ли списки должным образом и можно ли получить доступ к свойствам объекта (или нет). Пока вы не изменились например save()
метод модели и / или предоставляют вашу пользовательскую логику , я бы не проверял это. Вы должны доверять разработчикам фреймворка, что это работает правильно.
Вам нужно только проверить, что вы написали (пере).
Классы моделей могут быть особым случаем. Как я уже сказал, вам нужно их протестировать, если вы предоставляете пользовательскую логику. Но вы также должны проверить их на соответствие вашим требованиям . Например. может быть, что поле не может иметь значение null
(или что оно должно быть определенного типа данных, например целое число). Поэтому вы должны проверить, что сохранение объекта завершается неудачей, если в этом поле есть значение null
.
Это не проверяет ORM на правильность следования вашей спецификации, но проверяет, что спецификация все еще удовлетворяет вашим требованиям. Возможно, вы изменили модель и изменили некоторые настройки (случайно или из-за того, что забыли о требованиях).
Но вам не нужно проверять, например, такие методы, как save()
или более, вы можете получить доступ к свойству.
Конечно, когда вы используете глючный сторонний код ... ну, все может быть иначе. Но поскольку Django использует сам тестовый фреймворк для проверки того, что все работает, я предполагаю, что он работает.
Подводя итог:
Проверьте свои требования, протестируйте свой собственный код.
Это только моя точка зрения. Может быть, у других есть лучшие предложения.