С TDD хороший способ оставаться в здравом уме - это писать тесты, которые охватывают требуемое количество допустимых входных данных, если тесты не пройдены, потому что кода еще нет, написать как можно меньше кода, чтобы их пропустить, затем выполнить рефакторинг этого кодав нечто готовое к производству, обеспечивая при этом ваши испытания еще пройти.Похоже, вы сделали этот бит.
Тогда, с точки зрения недействительного тестирования ввода, я сомневаюсь, что выбор действительно должен быть бесконечным, и попадет в несколько случаев, которые вы можете проверить достаточно хорошо, простонесколько альтернативных входных данных / аргументов (например: для целочисленного ввода, проверки прохождения нуля, отрицательных целых чисел, массивных / переполненных целых чисел, символов).
Конечно, это все еще требует времени для разработки и кодирования (даже если вы автоматизируете его, перебирая списки переменных и вызывая один и тот же тест несколько раз с разными входами), и хотя это определенно стоит сделать, если вы хотите большего, вы всегда можете посмотреть на что-то вроде fuzz testing для дополнительного разума.
PS.Что касается тестирования API, я бы сосредоточился на создании тестовых запросов к выставленным коллекциям / ресурсам API (это легко сделать в виде модульных тестов с помощью тестового клиента Django), а также на непосредственном модульном тестировании любых нетривиальных методов, которые API использует вчехлы.Методы получения, установки и т. Д. Должны затем неявно проверяться функциями более высокого уровня.По идее: о)