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.

War es hilfreich?

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());
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top