Как проверить второй параметр в макете объекта PHPUnit
Вопрос
Вот что у меня есть:
$observer = $this->getMock('SomeObserverClass', array('method'));
$observer->expects($this->once())
->method('method')
->with($this->equalTo($arg1));
Но метод должен принимать два параметра.Я только проверяю правильность передачи первого параметра (как $arg1).
Как проверить второй параметр?
Решение
Я считаю, что способ сделать это:
$observer->expects($this->once())
->method('method')
->with($this->equalTo($arg1),$this->equalTo($arg2));
Или
$observer->expects($this->once())
->method('method')
->with($arg1, $arg2);
Если вам нужно выполнить утверждение другого типа для второго аргумента, вы тоже можете это сделать:
$observer->expects($this->once())
->method('method')
->with($this->equalTo($arg1),$this->stringContains('some_string'));
Если вам нужно убедиться, что какой-то аргумент передает несколько утверждений, используйте LogicalAnd().
$observer->expects($this->once())
->method('method')
->with($this->logicalAnd($this->stringContains('a'), $this->stringContains('b')));
Не связан с StackOverflow