Domanda

Vorrei testare una funzione che genererà il testo lorem ipsum , ma lo fa all'interno dei tag html. Quindi non posso conoscere in anticipo il contenuto testuale, ma conosco la struttura html. Questo è ciò che voglio testare. E forse che la lunghezza dei testi è entro certi limiti. Quindi quello che mi chiedo è se gli assertTags possono farlo in un modo parafrasato sotto:

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

Sto usando SimpleTest con CakePHP, ma penso che dovrebbe essere una domanda generale.

È stato utile?

Soluzione

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

Altri suggerimenti

Estendi la classe SimpleExpectation e quindi usa la tua nuova classe Expectation nell'istruzione assert

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

l'esempio fornito è per la convalida di un indirizzo IP ma dovrebbe essere applicabile al tuo problema:

class ValidIp extends SimpleExpectation {

  function test($ip) {
    return (ip2long($ip) != -1);
  }

  function testMessage($ip) {
    return "Address [$ip] should be a valid IP address";
  }
}

quindi nel tuo test

$this->assert(new ValidIp(),$server->getIp());
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top