Как написать тест AssertTags в SimpleTest с регулярным выражением?
-
02-07-2019 - |
Вопрос
Я хочу протестировать функцию, которая будет генерировать lorem ipsum
text, но делает это внутри html-тегов.Поэтому я не могу заранее знать текстовое содержание, но знаю структуру HTML.Это то, что я хочу проверить.И возможно, что длина текстов находится в определенных пределах.Итак, мне интересно, могут ли AssertTags сделать это так, как перефразировано ниже:
Result = "<p>Some text</p>";
Expected = array(
'<p' ,
'regex',
'/p'
);
assertTags(resutl, expected)
Я использую SimpleTest с CakePHP, но думаю, это должен быть общий вопрос.
Решение
$expected = array(
'<p',
'preg:/[A-Za-z\.\s\,]+/',
'/p'
);
Другие советы
Расширьте класс SimpleExpectation, а затем используйте новый класс Expectation в операторе утверждения.
видеть: http://www.lastcraft.com/expectation_documentation.php#extending
приведенный пример предназначен для проверки IP-адреса, но он должен быть применим к вашей проблеме:
class ValidIp extends SimpleExpectation {
function test($ip) {
return (ip2long($ip) != -1);
}
function testMessage($ip) {
return "Address [$ip] should be a valid IP address";
}
}
тогда в твоем тесте
$this->assert(new ValidIp(),$server->getIp());