'return value'
인수에 상관없이 반환하는 PHPUnit 모의 객체가 있습니다 .
// From inside a test...
$mock = $this->getMock('myObject', 'methodToMock');
$mock->expects($this->any))
->method('methodToMock')
->will($this->returnValue('return value'));
내가 할 수있는 것은 mock 메소드에 전달 된 인수를 기반으로 다른 값을 반환하는 것입니다. 나는 다음과 같은 것을 시도했다.
$mock = $this->getMock('myObject', 'methodToMock');
// methodToMock('one')
$mock->expects($this->any))
->method('methodToMock')
->with($this->equalTo('one'))
->will($this->returnValue('method called with argument "one"'));
// methodToMock('two')
$mock->expects($this->any))
->method('methodToMock')
->with($this->equalTo('two'))
->will($this->returnValue('method called with argument "two"'));
그러나 이로 인해 모의 객체가 인수로 호출되지 않으면 PHPUnit이 불만을 제기 'two'
하므로 methodToMock('two')
정의가 첫 번째 정의를 덮어 쓴 것으로 가정합니다 .
그래서 내 질문은 : PHPUnit 모의 객체가 인수에 따라 다른 값을 반환하도록하는 방법이 있습니까? 그렇다면 어떻게?