Тестирование функций PHPUnit пример. (указатели на функцию php)
Primary tabs
Тестировать будем всё-таки в виде , классов, но при этом именно функции, лежащие в подключаемом файле (чтобы не копировать их в файл теста).
В частности, мы протестируем функции get_tag_list() и meta_arr_fill() которые находятся в некотором файле parser_lib.php, расположенном по адресу (пример для локальной машины) CORE_P+parser_lib.php, где CORE_P -это константа, определённая опять же некотором файле.
Итак , вот пример (читайте комментарии - разберётесь) =
<?php // тесты ключевых функций раздела ядра require_once 'PHPUnit/Autoload.php'; include_once CORE_P."parser_lib.php"; // подключаем определения функции разбора значений файлов метаинформации из раздела ядра. include_once CORE_P."common_lib.php"; // подключаем определения функций общего назначения ядра. class CoreModuleTest extends PHPUnit_Framework_TestCase { public function testArrayFill() { $test = new CoreModule(); // создаём класс, который будем тестировать //$tagarr = array("title" => null, "path2" => null,"level" => 2); $tagarr = array( "title" => null,"path2" => null,"level" => 2); $str = tfile_to_str(T_FILE_SET_P."mag/2020/November/meta.info"); // cчитываем все данные из этого файла в одну строку (используем специальную тестовую иерархию файлов) $this->assertEquals(array("title" => "Нелинейные отражения", "path2" => null, "level" => 2), $test->ArrayFill($tagarr, $str)); } public function testGetTags() // запускает функцию meta_array_fill, которая заполняет массив на основае данных из строки. { echo('Тестируем функция = <b>get_tag_list($level, $ucount , $scount) </b> <br>'); $test = new CoreModule(); // создаём класс, который будем тестировать $this->assertEquals(array("title"=>null , "path"=>null , "level" =>null ), $test->GetTags(2,1,2)); } } class CoreModule { // класс содержащий функции модуля ядра public function ArrayFill($tagarr,$str) // запускает функцию meta_array_fill, которая заполняет массив на основае данных из строки. { $var="meta_arr_fill"; return $var($tagarr,$str); // вызываем функцию meta_arr_fill() из parser_lib.php } public function GetTags($level, $ucount , $scount) // запускает функцию meta_array_fill, которая заполняет массив на основае данных из строки. { $var="get_tag_list"; return $var($level, $ucount , $scount); // вызываем функцию из get_tag_list parser_lib.php } } ?>
ВНИМИНИЕ =
соблюдайте стандарты именования классов-тестеров и их методов (см. пример выше )
иначе увидите сообщение типа =
1) Warning
No tests found in class "CommonModuleTest".
- vedro-compota's blog
- Log in to post comments
- 7140 reads