Ruby / Rails пользуются действительно хорошими и мощными средами тестирования, основанными на поведении и разработке, такими как Cucumber и RSpec .
Наслаждается ли Python / Django тем же (я я не говорю о простом модульном тестировании, таком как PyUnit)?
Появился новый инструмент под названием Lettuce , который обещает быть питонической версией Cucumber. Все начинается с интеграции с Django. Это плюс существующие инструменты тестирования в Django делают его очень подходящим для модульного тестирования.
Существует также инструмент под названием Windmill , который предоставляет надежный инструмент тестирования на основе браузера для создания тестов GUI. Добавьте к этому такой инструмент, как Lettuce, для написания приемочных тестов и прямые unittest и носовые тесты , и я бы сказал, что все готово.
Следует помнить, что между Ruby и Python существует немного другая культура. Ruby отдает предпочтение тестам превыше всего. В Python это документация. Таким образом, в Python нет миллиона и одной фреймворка для тестирования, а всего лишь несколько действительно надежных, со случайными выбросами (например, Lettuce).
Надеюсь, это поможет.
Если вы имеете в виду тестирование высокого уровня, а не модульное тестирование, вы все равно можете использовать Cucumber. Cucumber можно подключить к Webrat и Mechanize, и вы можете использовать эту настройку для написания историй для тестирования вашего приложения Django. У меня такая установка. Вы также можете подключить Cucumber к Watir и провести тестирование на основе браузера.
Не существует чего-то вроде FactoryGirl для автоматической генерации данных для вашей модели, но вы можете использовать фикстуры Django для создания исходных данных для вашей модели, и устанавливать эти фикстуры только тогда, когда вы находитесь в режиме тестирования. Затем вы можете начать тест и получить некоторые данные для тестирования.
С их помощью вы можете настроить довольно полный набор тестов высокого уровня. Затем вы можете использовать модульный тест Django для тестирования низкого уровня.
У меня был хороший опыт работы с TestBrowser, который позволяет писать функциональные тесты на высоком уровне. См. http://pypi.python.org/pypi/homophony для интеграции TestBrowser с Django.