Как написать тест AssertTags в SimpleTest с регулярным выражением?
Я хочу протестировать функцию, которая будет генерировать lorem ipsum
текст, но он делает это в тегах HTML. Так что я не могу знать заранее текстовое содержание, но я знаю структуру HTML. Это то, что я хочу проверить. И возможно, что длина текстов находится в определенных пределах. Итак, что мне интересно, так это если assertTags может сделать это, как показано ниже:
Result = "<p>Some text</p>";
Expected = array(
'<p' ,
'regex',
'/p'
);
assertTags(resutl, expected)
Я использую SimpleTest с CakePHP, но я думаю, что это должен быть общий вопрос.
2 ответа
Решение
Расширьте класс SimpleExpectation, а затем используйте новый класс Expectation в операторе assert
см.: http://www.lastcraft.com/expectation_documentation.php
приведенный пример предназначен для проверки 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());