phpunit mock 객체에서 두 번째 매개 변수를 테스트하는 방법

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);

두 번째 arg에서 다른 유형의 주장을 수행 해야하는 경우 다음을 수행 할 수 있습니다.

$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