2008-09-25 17 views
2

Je souhaite tester une fonction qui va générer du texte lorem ipsum, mais elle le fait dans les balises html. Donc, je ne peux pas savoir à 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 est dans certaines limites. Donc ce que je me demande est si les assertTags peuvent le faire d'une manière paraphrasé ci-dessous:Comment écrire un test AssertTags dans SimpleTest avec regex?

Result = "<p>Some text</p>"; 
Expected = array( 
    '<p' , 
    'regex', 
    '/p' 
); 
assertTags(resutl, expected) 

J'utilise SimpleTest avec CakePHP, mais je pense qu'il devrait être une question générale.

Répondre

2
$expected = array(
    '<p', 
    'preg:/[A-Za-z\.\s\,]+/', 
    '/p' 
); 
0

étendre la classe SimpleExpectation puis utilisez votre nouvelle classe d'attente dans la déclaration assert

voir: http://www.lastcraft.com/expectation_documentation.php#extending

l'exemple donné est pour valider une adresse IP, mais devrait être applicable à 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());