Модульные тесты для любого кода, который Вы хотите поддержать.
, Короче говоря идея состоит в том, чтобы записать много маленьких тестов, каждый из которых может быть выполнен в изоляции и протестировать самую маленькую часть Вашей кодовой базы (часто отдельные классы или отдельные функции). Если я дам этой функции вход, то это ожидает, это возвращает вывод, который я ожидаю? Если это делает, который означает, что остальная часть приложения может в значительной степени предположить, что это работает. И если это не делает, я зафиксировал бы ошибку в небольшой, простой, изолированной функции модульного теста, чем пытающийся проследить его через полноту моего приложения.
, Конечно, это также требует, чтобы Вы справедливо дисциплинировались в том, как Вы пишете свой код, оба, потому что должно быть возможно изолировать отдельные функции или классы для тестирования их, и потому что, ну, в общем, тесты не пишут себя. Необходимо сделать это. ;)
, Учитывая качество большинства PHP кодируют, я видел, я сказал бы, что поблочное тестирование определенно имеет свое место в сообществе PHP. Больше, чем почти на любом другом языке, на самом деле. ;)
Модульные тесты автоматизированы тесты, которые тестируют, делает ли данная часть кода то, что Вы ожидаете, что это сделает под данным стечением обстоятельств. Хорошие модульные тесты тестируют маленькие части функциональности, часто на уровне отдельных функций.
Модульные тесты обычно структурируются таким образом, что Вы настраиваете некоторое состояние, выполните функцию или метод, Вы хотите протестировать, и затем утверждать или вывод той функции или изменение в другом состоянии в результате той функции. Большинство платформ поблочного тестирования имеет утилиты для поддержки и структурирования этого, такие как:
Модульные тесты полезны по ряду причин:
Модульные тесты полезны на любом коде, это больше, чем несколько строк, независимо от языка. У меня есть определенно единица, протестировал код php, даже для относительно маленьких проектов, и получили непосредственные вознаграждения от него.
Модульный тест является тестом небольшой части кода, который Вы пишете. Вы тестируете его в изоляции от остальной части системы, чтобы удостовериться, что та часть Вашего кода работает.
легче протестировать много небольших частей кода, гарантировать, чтобы они работали и затем протестировали их сотрудничество, вместо того, чтобы тестировать систему в целом.
важно различать поблочное тестирование и автоматизированное поблочное тестирование. Вы всегда должны тест единицы Ваш код. Однако автоматизация Ваших модульных тестов является целым другим предметом.
В дополнение к то, что имеет уже быть отвеченным, имея тестовые случаи, покрывающие Ваш код, позволяет Вам продолжать двигаться к Рефакторинг (улучшение Вашего кода разрабатывают, не изменяя его заметное поведение).
платформы Модульного теста для PHP включают PHPUnit и SimpleTest, которые были сравнены на StackOverflow.
Если Вы пишете приложение какого-либо описания, необходимо рассмотреть модульные тесты. Сделанный правильно, они вынуждают Вас думать о качестве кода, который Вы поставляете своим пользователям. Я думаю проблема, которую Вы имеете здесь, различие между кодом поблочного тестирования и автоматизированным поблочным тестированием. Поблочное тестирование может быть сделано так же просто как запись ряда тестов и затем вручную пробежки их.
Автоматизированное поблочное тестирование, с другой стороны, полагается на Вас имеющий некоторую форму приложения/ремня безопасности, чтобы выполнить и повторно выполнить тесты. С автоматизированными модульными тестами можно повторно выполнить тесты только путем нажатия кнопки. Итак, почему повторное выполнение является тестом, настолько важным? Просто разговор, Вы не пишете, что приложения запускают тесты на них однажды и затем убегают от них. Запишите свои тесты так, чтобы Вы осуществили свой код в дискретных небольших выполнениях и выполнили их в течение процесса разработки. Путем выполнения этого, с правильно написанным набором тестов, Вы получаете намного лучшую возможность идентификационного кода, это было повреждено обновлениями.
поиск Google "php поблочное тестирование" урожаи ценный клад информации об этом предмете. проект PHPUnit выглядит интересным.
Большинство php, которые я видел, почти невозможно сделать поблочное тестирование на.
Википедия имеет статью о поблочном тестировании, если Вам интересно.
На почему юнит-тестирование должно проводиться в первую очередь, я хотел бы добавить аргумент Барри Боума: "обнаруженный и исправленный дефект на стадии юнит-тестирования более чем в сто раз дешевле, чем если бы это было сделано после поставки заказчику"
Хотя множитель звучит немного грубовато, я думаю, что этот аргумент определенно оправдывает тестирование.