Como escrever um teste AssertTags em SimpleTest com regex?
-
02-07-2019 - |
Pergunta
Eu gostaria de testar uma função que irá gerar texto lorem ipsum
, mas fá-lo dentro de html tags. Então eu não posso saber com antecedência o conteúdo textual, mas eu sei que a estrutura html. Isso é o que eu quero testar. E talvez que o comprimento dos textos estão dentro de certos limites.
Então o que eu estou querendo saber é se os assertTags pode fazer isso de uma forma parafraseado abaixo:
Result = "<p>Some text</p>";
Expected = array(
'<p' ,
'regex',
'/p'
);
assertTags(resutl, expected)
Eu estou usando SimpleTest com CakePHP, mas eu acho que deveria ser uma questão geral.
Solução
$expected = array(
'<p',
'preg:/[A-Za-z\.\s\,]+/',
'/p'
);
Outras dicas
Estender a classe SimpleExpectation e então usar sua nova classe Expectativa na instrução assert
ver: http://www.lastcraft.com/expectation_documentation.php#extending
O exemplo dado é para validar um endereço IP, mas deve ser aplicável ao seu problema:
class ValidIp extends SimpleExpectation {
function test($ip) {
return (ip2long($ip) != -1);
}
function testMessage($ip) {
return "Address [$ip] should be a valid IP address";
}
}
, em seguida, em seu teste
$this->assert(new ValidIp(),$server->getIp());