2009-12-13 12 views
3

Je n'arrive pas à le faire correctement, le message d'erreur de l'exception est imprimé, ce qui rend la fenêtre de ligne de commande plus difficile à lire. Voici comment mon code est structuré et le code de test. Le message d'erreur s'affichera dans la fenêtre de ligne de commande comme ci-dessous. J'ai essayé toutes les méthodes montrées dans phpunit.de mais les mêmes résultats.PHPUnit Test d'exception, message d'erreur salissant la sortie des résultats

..Error on line 13 in c:\file\path\fruits.php: Kiwi not available!.F 

La ligne d'erreur s'imprime, comment puis-je supprimer cela, est-ce que je le fais correctement?

+0

Ceci est un bug php. essayer d'instancier une nouvelle classe entraîne une exception trhown dans l'analyseur, ce qui perturbe les choses. Je ne connais pas l'exception attendue dans phpuni car elle n'est pas disponible sur la version stable que j'utilise via les dépôts ubuntu. – gcb

Répondre

1

C'est embarrassant car j'ai trouvé le moyen de le faire. Merci Chris, mais j'ai aussi essayé.

J'ai testé la mauvaise méthode, chooseFruit n'est pas la méthode qui jette l'exception, de sorte que les impressions d'erreur d'exception sur:

public function testAvailableFruits() 
{ 
    $this->setExpectedException('Exception'); 
    **chooseFruit('Kiwi');** 
} 

Test de la méthode actuelle qui lève l'exception assourdit le message d'erreur, puisque il n'est pas répercuté du tout:

public function testAvailableFruits() 
{ 
    $this->setExpectedException('Exception'); 
    **availableFruits('Papaya')** 
} 
3

Je crois une autre façon de le faire est d'ajouter un bloc de commentaire à la méthode d'essai qui ressemble à ...

/** 
* @expectedException ExpectedExceptionName 
*/ 

Ou, vous pouvez également prendre l'exception de votre auto provoque la méthode à l'échec si vous n'obtenez pas à l'intérieur du bloc catch.

Questions connexes