Предложение вашей работы над текущей версией django: python manage.py syncdb
устарело. Вместо этого используйте python manage.py migrate
, чтобы применить основные миграции django.
Чем создавать и применять свои собственные миграции:
python manage.py makemigrations MYAPP
python manage.py migrate
Чтобы получить список всех доступных и примененных миграций, используйте:
python manage.py showmigrations
Хороший пример теории, встречающей действительность. Модульные тесты предназначены для тестирования единственной операции, и многие пуристы шаблона настаивают на Единственном Responsibilty, таким образом, у нас есть прекрасный чистый код и тесты для движения с ним. Однако в реальном (грязном) мире, код (особенно унаследованный код) делает много вещей и не имеет никаких тестов. То, в чем это нуждается, является дозой рефакторинга для очистки путаницы.
Мой подход должен создать тесты, с помощью инструментов Unit Test, тот тест много вещей в единственном тесте. В одном тесте я могу проверять, что соединение с БД открыто, изменяя много данных, и делая прежде чем/после того, как проверяют DB. Я неизбежно пишу классы помощника делать проверку, и как правило те помощники могут затем быть добавлены в кодовую базу, поскольку они инкапсулировали поведение/логику/требования на стадии становления. Я не подразумеваю, что у меня есть единственный огромный тест, что я действительно имею в виду, тесты mnay, делают работу, которую пурист назвал бы интеграционным тестом - такая вещь все еще существует? Также я нашел полезным создать тестовый шаблон и затем создать много тестов из этого, проверить граничные условия, комплекс, обрабатывающий и т.д.
BTW, который языковая среда мы говорим о? Некоторые языки предоставляют себя рефакторингу лучше, чем другие.
Для получения инструкций относительно того, как осуществить рефакторинг унаследованный код, Вы могли бы хотеть прочитать книгу, Работающую Эффективно с Унаследованным кодом. Существует также короткая версия PDF, доступная здесь.
На основе моего опыта я записал бы тесты не для конкретных методов в унаследованном коде, а для полной функциональности он обеспечивает. Они могли бы или не могли бы отобразиться тесно на существующие методы.
Тесты записи в том, что когда-либо уровень системы Вы можете (если Вы можете), если это означает выполнять базу данных и т.д. затем пусть будет так. Необходимо будет написать намного больше кода для утверждения то, что код в настоящее время делает как 500 строк +, метод собирается возможно иметь большое поведение, обернутое в нем. Что касается сравнения старого по сравнению с новым, если Вы пишете тесты против старого кода, они передают, и они покрывают все, что это делает затем при выполнении их против нового кода, Вы эффективно проверяете старое по новому. Я сделал это для тестирования комплекса sql инициировало, я хотел осуществить рефакторинг, это было болью и заняло время, но месяц спустя, когда мы нашли другую проблему в той области, стоило иметь тесты там для доверия.
По моему опыту, это - действительность при работе над Унаследованным кодом. Книга (Работающий с Наследием..) упомянутый Esko превосходная работа, которая описывает различные подходы, которые могут взять Вас там.
Я видел подобные проблемы с модульным тестом самим, который вырос для становления системой/функциональным испытанием. Самая важная вещь разработать тесты для или существующего кода Прежней версии состоит в том, чтобы определить термин "единица". Это может быть даже функциональный блок как "чтение из базы данных" и т.д. Определите ключевые функциональные блоки и поддержите тесты, который увеличивает стоимость.
Как в стороне, был недавний разговор между Joel S. и Martin F. на TDD/модульных тестах. Мое взятие - то, что важно определить единицу и сосредоточить внимание на нем! URL: Откройте Letter, расшифровку стенограммы Joel и подкаст
Это действительно - одна из ключевых проблем попытки переоборудовать унаследованный код. Могут Вы для разрушения проблемной области к чему-то более детализированному? Это 500 + метод строки делают что-нибудь кроме системных вызовов Платформы JDK/Win32/.NET JARs/DLLs/assemblies? Т.е. Есть ли больше детализированных вызовов функции в тех 500 + громадина строки, что Вы могли модульный тест?
Следующая книга: Искусство модульного тестирования содержит пару глав с некоторыми интересными идеями о том, как работать с устаревшим кодом с точки зрения разработки модульных тестов.
Я нашел это весьма полезным.