67 votes

Comment tester un second paramètre dans un objet fantaisie PHPUnit ?

C'est ce que j'ai :

$observer = $this->getMock('SomeObserverClass', array('method'));
$observer->expects($this->once())
         ->method('method')
         ->with($this->equalTo($arg1));

Mais la méthode devrait prendre deux paramètres. Je ne fais que tester que le premier paramètre est transmis correctement (en tant que $arg1).

Comment tester le second paramètre ?

101voto

silfreed Points 643

Je crois que la façon de faire est :

$observer->expects($this->once())
     ->method('method')
     ->with($this->equalTo($arg1),$this->equalTo($arg2));

O

$observer->expects($this->once())
     ->method('method')
     ->with($arg1, $arg2);

Si vous devez effectuer un autre type d'assertion sur le 2e arg, vous pouvez également le faire :

$observer->expects($this->once())
     ->method('method')
     ->with($this->equalTo($arg1),$this->stringContains('some_string'));

Si vous devez vous assurer qu'un argument passe plusieurs assertions, utilisez logicalAnd().

$observer->expects($this->once())
     ->method('method')
     ->with($this->logicalAnd($this->stringContains('a'), $this->stringContains('b')));

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X