Если начать следующий Test Driven развития практики, они будут своего рода руководство вас через процесс и зная , что тестирование будет, естественно. Некоторые места для начала:
Тесты на первом месте
Никогда, никогда не пишите код перед написанием тестов. Смотрите Red-Green-Refactor-Repeat для объяснения.
Написать регрессионные тесты
Всякий раз, когда вы сталкиваетесь с ошибкой, напишите тестовый пример и убедитесь, что он не работает . Если вы не можете воспроизвести ошибку через неудачный тестовый сценарий, вы на самом деле ее не нашли.
Красно-зеленый-Refactor-Repeat
Красный : начните с написания самого простого теста поведения, которое вы пытаетесь реализовать. Думайте об этом шаге как о написании некоторого примера кода, который использует класс или функцию, над которой вы работаете. Убедитесь, что он компилируется / не имеет синтаксических ошибок и что он не работает . Это должно быть очевидно: вы не написали ни одного кода, поэтому он должен потерпеть неудачу, верно? Здесь важно учиться тому, что, если вы не увидите, что тест провалился хотя бы один раз, вы никогда не сможете быть уверены, что если он пройдет, он сделает это из-за чего-то, что вы сделали по какой-то фиктивной причине.
Зеленый : написать самый простой и глупый код, который на самом деле проходит тест. Не пытайся быть умным. Даже если вы видите, что есть очевидный крайний случай, но тест учитывает, не пишите код для его обработки (но не забывайте о крайнем случае: он понадобится вам позже). Идея состоит в том, что каждый кусок кода, который вы пишете, каждый if
, каждый, try: ... except: ...
должен быть подтвержден тестовым примером. Код не должен быть элегантным, быстрым или оптимизированным. Вы просто хотите пройти тест.
Рефакторинг : Очистите ваш код, получите правильные имена методов. Посмотрите, проходит ли тест еще раз. Оптимизация. Запустите тест снова.
Повторяю : вы помните крайний случай, который тест не охватывал, верно? Итак, теперь это его важный момент. Напишите тестовый сценарий, который охватывает эту ситуацию, посмотрите, как он провалится, напишите некоторый код, посмотрите, как он прошел, рефакторинг.
Проверьте свой код
Вы работаете над определенным фрагментом кода, и это именно то, что вы хотите проверить. Это означает, что вы не должны тестировать библиотечные функции, стандартную библиотеку или ваш компилятор. Также постарайтесь не испытывать «мир». Это включает в себя: вызов внешних веб-API, некоторые вещи с интенсивным использованием базы данных и т. Д. Всякий раз, когда вы можете попытаться смоделировать его (создайте объект, который следует тому же интерфейсу, но возвращает статические, предопределенные данные).