Как проверить второй параметр в макете объекта PHPUnit

StackOverflow https://stackoverflow.com/questions/311485

  •  10-07-2019
  •  | 
  •  

Вопрос

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

$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')));
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top