2012-04-27 2 views
1

Я создаю приложение Django, и я пытаюсь решить, как настроить модульные тесты для моего кода. Глядя на документацию Django, я вижу, что есть два варианта модульных тестов, встроенные тесты Python2.7 и собственный класс TestCase от Django. При попытке увидеть, какой из них использовать, Django, похоже, только перечисляет преимущества для Python (https://docs.djangoproject.com/en/dev/topics/testing/?from=olddocs#which-should-i-use).Django vs Python2.7 unittest TestCase?

Какой блок-тест предпочтительнее?

ответ

2

Короткий ответ: используйте Django TestCase. Он делает все, что может сделать python unittest.TestCase и многое другое.

Классы python и Django TestCase предназначены для модульных тестов. Раздел Which should I use, в котором вы ссылаетесь, сравнивает блок-тесты с doc tests.

Django TestCase является просто расширением python unittest.TestCase. Если вы используете более раннюю версию Python, то Django TestCase позволяет использовать некоторые опрятные функции, такие как assertRaisesExp, которые доступны только в unittest.TestCase для python 2.7.

Поскольку вы используете Python 2.7, вам не нужно использовать Django TestCase для 2.7 функциональности Python, но есть еще много дополнительных функций, например fixture loading, который означает, что вы должны использовать Django TestCase.

+1

«TestCase» Django просто перераспределяет последний модуль 'unittest', чтобы гарантировать, что все функции доступны для более старых интерпретаторов. Это то, что вы, вероятно, захотите сделать вручную в противном случае, если вы хотите, чтобы вы могли использовать 'unittests' 2 и по-прежнему поддерживать совместимость с Python 2.5, чего и ожидали бы люди. Есть и другие вещи, перераспределенные также для совместимости с Python 2.5. –

Смежные вопросы