Comment écrire un test AssertTags dans SimpleTest avec regex?
-
02-07-2019 - |
Question
Je souhaite tester une fonction qui générera du texte lorem ipsum
, mais cela se fait dans les balises html. Je ne peux donc pas connaître à l’avance le contenu textuel, mais je connais la structure html. C'est ce que je veux tester. Et peut-être que la longueur des textes se situe dans certaines limites.
Donc, ce que je me demande, c'est si assertTags peut faire cela d'une manière paraphrasée ci-dessous:
Result = "<p>Some text</p>";
Expected = array(
'<p' ,
'regex',
'/p'
);
assertTags(resutl, expected)
J'utilise SimpleTest avec CakePHP, mais je pense que cela devrait être une question générale.
La solution
$expected = array(
'<p',
'preg:/[A-Za-z\.\s\,]+/',
'/p'
);
Autres conseils
Étendez la classe SimpleExpectation, puis utilisez votre nouvelle classe Expectation dans l'instruction assert
voir: http://www.lastcraft.com/expectation_documentation.php#extending
l'exemple donné concerne la validation d'une adresse IP mais devrait s'appliquer à votre problème:
class ValidIp extends SimpleExpectation {
function test($ip) {
return (ip2long($ip) != -1);
}
function testMessage($ip) {
return "Address [$ip] should be a valid IP address";
}
}
puis dans votre test
$this->assert(new ValidIp(),$server->getIp());