2011-01-19 4 views
0

При выполнении TDD в API приложения Django я пишу тесты, демонстрирующие, что при условии обеспечения надлежащих ограничений ожидаемые результаты будут достигнуты. Как написать тесты для бесконечных перестановок случаев, когда входные данные являются «неправильными».Как выполнить TDD при разработке Django API

Две вещи приходят на ум:

1) Я не должен нарушать динамический аспект питона по типу проверки каждого входа и

2) я должен испытывать «интересные» функции или методы (не геттеры и сеттеры), хотя я не уверен, как это относится к API

+0

Что значит точно? Написание тестов для бесконечных перестановок звучит как бесконечный цикл. –

ответ

3

С TDD хорошим способом оставаться в курсе является тестирование тестов, которые покрывают необходимое количество допустимых входов, еще нет кода, напишите как можно меньше кода, чтобы он прошел, а затем реорганизуйте этот код в нечто готовое к производству, наши тесты все еще проходят. Похоже, ты сделал это.

Тогда, с точки зрения недействительного тестирования ввода, я сомневаюсь, что выбор действительно должен быть бесконечным, и в некоторых случаях вы сможете достаточно хорошо проверить только несколько альтернативных входов/аргументов (например: для целочисленный ввод, тест, передающий нуль, отрицательные целые числа, массивы/переполняющие целые числа, символы).

Конечно, это требует времени для разработки и кодирования (даже если вы автоматизируете его, перебирая списки переменных и повторяя один и тот же тест с различными входами), и хотя это определенно стоит сделать, если вы хотите больше, вы всегда можете посмотреть на что-то вроде fuzz testing для дополнительного кусочка ума.

PS. Что касается тестирования API, я бы сосредоточился на создании тестовых запросов к открытым коллекциям/ресурсам API (которые можно было легко выполнить как единичные тесты с помощью тестового клиента Django), а также непосредственно выполнить тестирование любых нетривиальных методов, которые API использует в обложки. Получатели и сеттеры и т. Д. Затем должны быть неявно проверены функциями более высокого уровня. В теории: o)

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