Подпишись на RSS архива статей

Friday, October 18, 2019

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

Posted by Admin on 26.03.2007

Для программистов, которые привыкли к строгому коду на 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 поставляется документация и примеры использования.

    www.freelancer.com.ua

    Leave a comment, and if you'd like your own picture to show up next to your comments, go get a gravatar!

  • home | top