PHPUnit m'a laissé créer un stub de méthode pour lancer une exception, en utilisant soit:
[->will($this->throwException(..)][1]
->willThrowException(..
Je dois tester certains cas où le stub de méthode jette PHP Errors.
Est-ce que PHPUnit supporte quelque chose comme ça? Des solutions de contournement ici?
ThrowException () dans la classe PHPUnit TestCase peut prendre n'importe quelle instance de Throwable en tant que paramètre.
Ça signifie,
->will($this->throwException(new Error()));
->will($this->throwException(new Exception()));
sont tous deux valides
Vous pouvez créer une fonction dans un test en faisant une exception comme ceci:
$handlerConsentMessage = $this->getMockBuilder('YourClass')
->setMethods(array('yourMethod'))->getMock();
$handlerConsentMessage->method('yourMethod')->willThrowException(new Exception());
$handlerConsentMessage->run('functionToRun');
Maintenant, lorsque vous exécutez votre fonction de test functionToRun, si la fonction YourMethod est appelée, elle lève une exception.
Juste déclencher une erreur:
$foo
->expects($this->once())
->method('bar')
->willReturnCallback(function () {
trigger_error(
'Now really is not a good time',
E_USER_ERROR
);
});
Pour référence, voir: