Wie ein AssertTags Test in Simple mit regex schreiben?
-
02-07-2019 - |
Frage
Ich möchte eine Funktion testen, die lorem ipsum
Text generieren, aber es tut dies in HTML-Tags. So kann ich nicht den Textinhalt im Voraus wissen, aber ich weiß, die HTML-Struktur. Das ist, was ich testen möchten. Und vielleicht, dass die Länge der Texte sind in gewissen Grenzen.
Also, was ich frage mich, wenn die assertTags dieses Balg paraphrasiert in einer Weise tun können:
Result = "<p>Some text</p>";
Expected = array(
'<p' ,
'regex',
'/p'
);
assertTags(resutl, expected)
Ich bin mit Simple mit CakePHP, aber ich denke, es sollte eine allgemeine Frage sein.
Lösung
$expected = array(
'<p',
'preg:/[A-Za-z\.\s\,]+/',
'/p'
);
Andere Tipps
die SimpleExpectation Klasse erweitern und dann neue Expectation-Klasse in der assert-Anweisung
siehe: http://www.lastcraft.com/expectation_documentation.php#extending
gegeben ist das Beispiel eine IP-Adresse für die Validierung soll aber auf Ihr Problem anwendbar sein:
class ValidIp extends SimpleExpectation {
function test($ip) {
return (ip2long($ip) != -1);
}
function testMessage($ip) {
return "Address [$ip] should be a valid IP address";
}
}
dann in Ihrem Test
$this->assert(new ValidIp(),$server->getIp());