Как проверить второй параметр в фиктивном объекте PHPUnit - PullRequest
63 голосов
/ 22 ноября 2008

Вот что у меня есть:

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

Но метод должен принимать два параметра. Я только проверяю, что первый параметр передается правильно (как $ arg1).

Как проверить второй параметр?

1 Ответ

98 голосов
/ 09 декабря 2008

Я считаю, что способ сделать это:

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

Или

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

Если вам нужно выполнить другой тип утверждения для 2-го аргумента, вы также можете сделать это:

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

Если вам нужно убедиться, что некоторый аргумент передает несколько утверждений, используйте logicAnd ()

$observer->expects($this->once())
     ->method('method')
     ->with($this->logicalAnd($this->stringContains('a'), $this->stringContains('b')));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...