Я привык к веб-разработке с использованием LAMP, PHP5, MySQL плюс NetBeans с Xdebug.
Теперь я хочу улучшить свое развитие, научившись использовать (A) правильное тестирование и (B) структуру. Поэтому я настроил CodeIgniter, SimpleTest и простую надстройку Xdebug для Firefox. Это очень весело, потому что maroonbytes предоставил мне четкие инструкции и настроенную настройку, готовую для загрузки. Я стою на плечах гигантов и очень благодарен.
Раньше я использовал SimpleTest. Вот что я написал:
<?php require_once('../simpletest/unit_tester.php'); require_once('../simpletest/reporter.php'); class TestOfMysqlTransaction extends UnitTestCase { function testDB_ViewTable() { $this->assertEqual(1,1); // a pseudo-test } } $test = new TestOfMysqlTransaction(); $test->run(new HtmlReporter()) ?>
Поэтому я надеюсь, что знаю, как выглядит тест. Я не могу понять, где и как поставить тест в моей новой настройке. Я не вижу пробных тестов в пакете maroonbytes, и Google до сих пор привел меня к сообщениям, которые предполагают, что модульное тестирование уже функционально доступно. Что я делаю?
Редактировать:
Если вы выполняете настройку maroonbytes, просто следуйте инструкциям:
Любой файл, заканчивающийся на .php и с UnitTestCase внутри любой из этих папок, должен быть запущен. 🙂
Во-первых, тесты должны быть названы должным образом. Для тестирования приветствия контроллера, помещенного в файл welcome.php, тест называется welcome_controller_test.php и хранится в тестах / контроллерах /. Для получения дополнительной информации см. Этот пост .
Во-вторых, аргумент GET Xdebug вмешивается в тестовую процедуру. См. Пост чуть выше, также этот пост .
В-третьих, в тестовом тесте, который я разместил, необходимо удалить две четыре строки:
//require_once('../simpletest/unit_tester.php'); //require_once('../simpletest/reporter.php'); ... //$test = new TestOfMysqlTransaction(); //$test->run(new HtmlReporter())
Я делаю тесты довольно счастливо. CodeIgniter позволяет мне легко создавать и поддерживать тесты, поэтому моя цель TDD выглядит достижимой. Мои предыдущие попытки TDD дали мне эту идею, но PHP-скрипт был слишком бесплодным для меня, чтобы быть эффективным (и мы не будем обсуждать VBA!).