Фрилансер

Удаленная работа, советы фрилансерам, работа на дому
Что ищем?
(Например: дизайн, удаленная работа, работа на дому. Смотреть все проекты)

Тестирование кода на PHP 02.11.2006


www.vaau.ru

Для программистов, которые привыкли к строгому коду на 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 )
1/1 test cases complete: 4 passes, 0 fails and 0 exceptions.

Класс UnitTestCase является базовым для тестов. Он же предоставляет набор функций для проверки значений, вывода значение и др.

Для объединения тестов существует класс GroupTest, который позволит Вам вызвать сразу все тесты одновременно.
С пакетом SimpleTest поставляется документация и примеры использования.

Другие статьи по теме

Комментарии»

1. Комментарий от Leo - 23.11.2007

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