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

Я хочу протестировать функцию, которая будет генерировать lorem ipsum текст, но она делает это внутри тегов html. Поэтому я не могу заранее знать текстовое содержимое, но знаю структуру html. Это то, что я хочу проверить. А может быть, что длина текстов находится в определенных пределах. Итак, мне интересно, могут ли assertTags сделать это так, как это описано ниже:

Result = "<p>Some text</p>";
Expected = array( 
   '<p' ,
   'regex',
   '/p'
);
assertTags(resutl, expected)

Я использую SimpleTest с CakePHP, но я думаю, что это должен быть общий вопрос.


person Alexander Morland    schedule 25.09.2008    source источник


Ответы (1)


Расширьте класс SimpleExpectation, а затем используйте новый класс Expectation в операторе assert.

см.: 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());
person Ken    schedule 25.09.2008