Подтвердить что ты не робот

Тестирование в PHP

Я - веб-разработчик, работающий на PHP. У меня ограниченный опыт использования Test Driven Development в настольных приложениях С#. В этом случае мы использовали nUnit для модульной системы тестирования.

Я хотел бы начать использовать TDD в новых проектах, но я действительно не уверен, с чего начать.

Какие рекомендации у вас есть для фреймворка на основе PHP и какие хорошие ресурсы для тех, кто довольно новичок в концепции TDD?

4b9b3361

Ответ 1

Я использовал как PHPUnit, так и SimpleTest, и я нашел SimpleTest чтобы быть проще в использовании.

Что касается TDD, мне не повезло с ним в чистом смысле. Я думаю, что главным образом вопрос времени/дисциплины с моей стороны, хотя.

Добавление тестов после того, как факт был несколько полезен, но мои любимые вещи - это использовать тесты SimpleTest, которые проверяют конкретные ошибки, которые я должен исправить. Это очень просто проверить, что вещи действительно исправлены и остаются фиксированными.

Ответ 3

PHPUnit является стандартом, но он иногда также подавляющим, поэтому, если вы считаете его слишком сложным, ознакомьтесь с phpt, чтобы начать работу. Это очень, очень легко написать тесты. Нет проблем для любого программиста.

И чтобы ответить на ваш вопрос TDD - я не уверен, что TDD используется в пространстве PHP. Я вижу, что быстрое развитие приложений и TDD несколько противоречат (строго IMHO). TDD требует, чтобы у вас была полная картина того, что вы создали, и вы пишете свои тесты спереди, а затем реализуете код, чтобы пройти тест.

Итак, например, что мы делаем, это написать много тестов, когда мы закончим. Это не всегда лучший подход, потому что иногда вы заканчиваете с фиктивными тестами, которые проходят, но не очень полезны, но, по крайней мере, это то, что вы можете расширить. Внутри мы продолжаем тесты и в основном пишем тест для каждой найденной ошибки. Вот как он становится более прочным.

Ответ 4

Я лично предпочитаю SimpleTest. Существует тестовый бегун командной строки и веб-тест-тестировщик, и даже есть плагин Eclipse позволяющий запускать модульные тесты из среды IDE сам. Я нашел соединение Zend с PHPUnit намного сложнее, особенно для отладчика.

Мы используем SimpleTest внутри компании с непрерывной интеграцией script, которую мы написали сами. Каждый раз, когда мы проверяем функцию SVN, мы включаем модульные тесты. Каждый час или около того CI script запускается и вызывает командную строку PHP скрипт, которая запускает все наши модульные тесты. Если какой-либо перерыв, я получаю электронное письмо. Это отличный способ уменьшить количество ошибок в наших системах.

Однако вы можете так же легко использовать что-то вроде Phing для автоматического запуска тестов, либо на задании cron, либо с помощью Ключ регистрации SVN.

На самом деле, если вы хотите связаться со мной напрямую для получения дополнительной помощи, вы можете связаться со мной через мою информацию о профиле SO. Я хотел бы помочь вам.

Ответ 5

SimpleTest - отличная система. Я начал с него около 5 месяцев назад, никогда не слышал о TDD, и SimpleTest легко учиться, но все же мощный. Что касается ресурсов, я сейчас читаю TDD по примеру Кента Бекка, и это хорошо.

Ответ 6

Вы должны заглянуть в PHPUnit, он очень похож на nUnit.

Ответ 7

Еще один современный инструмент, который вы должны посмотреть, это Codeception. Он намного проще, чем PHPUnit, и включает в себя подход, основанный на сценарии, что весьма полезно для создания документации из тестов.