Тестирование кода на PHP 02.11.2006
Для программистов, которые привыкли к строгому коду на Java, Object Pascal, C++, где компилятор берет на себя контроль и выявляет многие типы ошибок при компиляции, написание программ на PHP “сущая каторга”. PHP не требует обязательной инициализации переменных, допускает весьма вольное описание полей в классах и т.д. Подобные вольности приводят к большему количеству ошибок в коде, которые выявляются не всегда просто. Ряд ошибок проявляется только при некоторых входных значениях. К тому же при эволюции программного обеспечения, часто случается что ряд старых функции начинают работать некорректно. Быстро выявить подобные ошибки и своевременно их исправлять позволяют средства автоматического тестирования, такие как JUnit для Java или его аналог для PHP SimpleTest.
Проект SimpleTest распространяется как Open Source и доступен для скачивания с SourceForge.net. Также есть плагин для среды разработки Esclipse.
Ниже приведен очень простой пример, показываюший как можно использовать возможности SimpleTest:
require_once (“../../tests/simpletest/unit_tester.php”);
require_once (“../../tests/simpletest/reporter.php”);
/*
* Пример Unit-тестирования кода PHP с помощью SimpleTest
*
*/
class PHPSimpleTest extends UnitTestCase {
function setUp() {
// действия до вызова функции тестирования testCode1()
}
function tearDown() {
// действия после вызовы функции тестирования testCode1()
}
/**
* Функция тестирования
*/
function testCode1()
{
$a=2*5;
// проверка на равенство
$this->assertEqual($a,10);
$arr=array($a,10);
// вывод значения
$this->dump($arr);
// проверка на равенство значения и соответствие типа
$this->assertIdentical($arr,array(10,10));
// проверяет значение на истинность
$this->assertTrue($a==10);
// проверяет значение на ложность
$this->assertFalse($a!=10);
}
}
// вызвать тестирование
$test = new PHPSimpleTest();
$reporter = new HTMLReporter();
$test->run($reporter);
?>
Запустите этот в файл в браузере и вы увидите следующие результаты:
phpsimpletest
Array ( [0] => 10 [1] => 10 )
Класс UnitTestCase является базовым для тестов. Он же предоставляет набор функций для проверки значений, вывода значение и др.
Для объединения тестов существует класс GroupTest, который позволит Вам вызвать сразу все тесты одновременно.
С пакетом SimpleTest поставляется документация и примеры использования.
Другие статьи по теме
- Рубрики : Веб-мастерам, Программистам
- Автор : Фрилансер




Комментарии»
Вполне приемлемая альтернатива PHPUnit, кстати.