2016-06-23 3 views
0

Mockery를 사용하여 캘린더 이벤트를 생성하는 클래스를 테스트하고 있습니다. 시작 및 종료 날짜의 타임 스탬프를 내 EventRepository의 create() 메소드에 전달합니다. 다른 데이터가 인수로 포함되어 있지만이 테스트에 대한 타임 스탬프가 올바른지주의해야합니다.Mockery :: contains()를 사용하여 Mockery 인수 검사

이 코드는 이벤트의 생성을 테스트하기 위해 잘 작동 :

$this->repo->shouldReceive('create')->once() 
      ->with(Mockery::contains(1466460000, 1466467200)); 

을 그러나 내가 두 번을 호출되는 create() 방법에 대한 모의를 확장 할 때, 그것은 실패합니다.

$this->repo->shouldReceive('create')->twice() 
      ->with(Mockery::contains(1466460000, 1466467200), 
       Mockery::contains(1466632800, 1466640000)); 

는 조롱는 동일한 기능 여러 통화에 대한 인수를 지정하기위한 구문 ->with(args1, args2)를 사용하지 않습니다?

답변

1

여러 개의 인수가있는 구문은 테스트중인 메서드에 여러 개의 인수가있는 경우에 사용됩니다. 사용 사례를 들어

다음과 같이 수행해야합니다 :

$this->repo->shouldReceive('create')->once() 
      ->with(Mockery::contains(1466460000, 1466467200)); 
$this->repo->shouldReceive('create')->once() 
      ->with(Mockery::contains(1466632800, 1466640000)); 
관련 문제