¿Cómo escribir una prueba de AssertTags en SimpleTest con expresiones regulares?
-
02-07-2019 - |
Pregunta
Deseo probar una función que genere el texto lorem ipsum
, pero lo hace dentro de las etiquetas html. Así que no puedo saber de antemano el contenido textual, pero sí conozco la estructura html. Eso es lo que quiero probar. Y tal vez que la longitud de los textos estén dentro de ciertos límites.
Entonces, lo que me pregunto es si los assertTags pueden hacer esto de una manera parafraseada a continuación:
Result = "<p>Some text</p>";
Expected = array(
'<p' ,
'regex',
'/p'
);
assertTags(resutl, expected)
Estoy usando SimpleTest con CakePHP, pero creo que debería ser una pregunta general.
Solución
$expected = array(
'<p',
'preg:/[A-Za-z\.\s\,]+/',
'/p'
);
Otros consejos
Amplíe la clase SimpleExpectation y luego use su nueva clase Expectation en la declaración de afirmación
vea: http://www.lastcraft.com/expectation_documentation.php#extending
el ejemplo dado es para validar una dirección IP, pero debería ser aplicable a su problema:
class ValidIp extends SimpleExpectation {
function test($ip) {
return (ip2long($ip) != -1);
}
function testMessage($ip) {
return "Address [$ip] should be a valid IP address";
}
}
luego en tu prueba
$this->assert(new ValidIp(),$server->getIp());