2010-08-24 17 views
0

Quelle action/méthode est PHPUnit égale à SimpleTest:

$this->UnitTestCase('message .....') 

Edit: Désolé pour mon erreur


Je pense ce que je demande de ne pas exister dans simple test directement C'est juste notre classe élargie.

Mais cette méthode affiche un message en début de test- comment cela se fait avec PHPUnit?

Merci

+0

J'ai vérifié les docs, et ne peux pas trouver cette méthode (je n'ai pas regardé très dur) ... Je vois une classe par ce nom, mais pas une méthode ... Que fait-elle? – ircmaxell

+0

@ircmaxell: J'ai eu le même problème, et ma meilleure estimation est la suivante: http://www.simpletest.org/api/SimpleTest/UnitTester/UnitTestCase.html#__construct – Tim

+0

@Tim, vous ne pouvez pas appeler '__construct' par le nom de la classe. Vous auriez besoin d'appeler 'parent :: __ construct' (je l'ai essayé). Donc, si c'est la classe dont '$ this' hérite, alors il n'y a pas de méthode' UnitTestCase' (pour autant que je sache) ... Ce qui est vraiment déroutant à propos de cette question ... – ircmaxell

Répondre

1

Je ne suis pas un expert SimpleTest, mais pour autant que je peux dire que est le constructeur de la classe UnitTestCase. L'équivalent dans PHPUnit est PHPUnit_Framework_TestCase; vous créez vos propres tests en sous-classant cela et en définissant des méthodes de test. Voir the PHPUnit docs sur l'écriture de tests pour un howto rapide et plus d'informations, mais brièvement, ceci est un test complet PHPUnit:

class MyTest extends PHPUnit_Framework_TestCase { 
    public function testSomething { 
     $this->assertTrue(MyClass::getSomethingTrue()); 
    } 
}

Mise à jour: pour répondre à la question révisée, le principal moyen d'afficher les messages dans PHPUnit est en échec d'assertion. Chaque fonction assert* est fournie avec un argument facultatif $message à la fin, que vous pouvez utiliser pour afficher un message personnalisé lorsque cette assertion échoue.

Si vous voulez toujours afficher un message, sans avoir à échouer une assertion, alors vous pouvez essayer une instruction print simple. Il sera intercalé avec la sortie du test, donc ce n'est peut-être pas la meilleure (ou la plus belle) façon d'accomplir ce que vous voulez, mais il va certainement déverser du texte sur une console, ce que vous semblez demander. Si vous recherchez un débogage avancé lors des tests unitaires, vous pouvez également envisager une structure de journalisation quelconque (ou même simplement une fonction personnalisée qui ouvre un fichier, imprime dessus et ferme le fichier). encore). De cette façon, vous préservez l'intégrité de la sortie de test, mais vous recevez toujours des messages personnalisés supplémentaires où vous le souhaitez pendant vos tests.