Как написать тест AssertTags в SimpleTest с регулярным выражением?

StackOverflow https://stackoverflow.com/questions/132186

Вопрос

Я хочу протестировать функцию, которая будет генерировать 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());
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top