Тестирование функций 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
- 7436 reads