Все публикации с тегом ”Тестирование”

Внешние инструменты тестирования для Django

Кому-то хватает стандартных инструментов тестирования Django, кому-то нет. Мне стандартного мало и я сделал обзор сторонних инструментов тестирования в Django.

В обзор попали:

  • django-sane-testing
  • django-test-utils
  • django-satprep
  • nosedjango
  • tddspry
продолжить чтение

Тесты — это просто

Когда я рассказывал lightning talk про тестирование, я отмечал свою статистику— размеры тестов всегда больше размера тестируемого кода. Из этого можносделать неправильный вывод, что на написание оттестированного кода уходитв два раза больше времени, чем на код без тестов. При обсуждении я говорил,что тесты как правило проще чем тестируемый код, и время колеблется где-тов районе +50%. Так вот, это пессимистичная оценка. Некоторое время я специально понаблюдал за собой и процессом написания и тестирования. И результат очень простой: базовые тесты пишутся впроцессе отладки кода, а не отдельно. И при достаточном опыте написаниятестируемого кода и тестов, время написания кода+тестов такого-же порядка,как написание отлаженного кода.

Для себя я выработал такой подход:

  1. Пишем test-aware код
  2. При создании кода сразу покрываем тестами те юниты, которые тестируетсялегко (нет возни с mock’ами, файлами, фикстурами и пр.)
  3. Покрываем ключевые юниты тестами (если они еще не покрыты после п.2)
  4. При появлении бага перед исправлением пишем тест, который падает приналичии ошибки и проходит после исправления. Исправляем, прогоняем тест, коммитим.

Не освещена тема функционального тестирования, так что stay tuned ;)

Покрытие кода тестами

Юнит-тесты хороши, когда покрывают весь ключевой код. Однако если проект чуть больше, чем “Hello, world!”, то оценить степень покрытия весьма проблематично. Существуют инструменты, которые помогают это делать. Для Python я знаю два таких:
  • — каркас юнит-тестов, часть Twisted
  • — модуль Неда Бачелдера
продолжить чтение

От Perl-скрипта к Twisted-приложению: Пишем юнит-тесты

Сегодня пишем юнит-тесты для нашего Twisted-приложения. У Twisted хорошая традиция полных юнит-тестов. Если исправляется ошибка, то обязательно пишется юнит-тест, который не проходит в оригинале и нормально завершается в исправленном варианте.

продолжить чтение