2015-11-26 4 views

ответ

1

Вы можете использовать метод returnArgument(). Из дока:

Иногда вы хотите вернуть один из аргументов в вызове методы (без изменений), как в результате погасил вызов метода. Пример 9.4 показывает , как вы можете достичь этого, используя returnArgument() вместо returnValue().

В примере:

class StubTest extends PHPUnit_Framework_TestCase 
{ 
    public function testReturnArgumentStub() 
    { 
     // Create a stub for the SomeClass class. 
     $stub = $this->getMockBuilder('SomeClass') 
        ->getMock(); 

     // Configure the stub. 
     $stub->method('doSomething') 
      ->will($this->returnArgument(0)); 

     // $stub->doSomething('foo') returns 'foo' 
     $this->assertEquals('foo', $stub->doSomething('foo')); 

     // $stub->doSomething('bar') returns 'bar' 
     $this->assertEquals('bar', $stub->doSomething('bar')); 
    } 
} 
+0

Благодаря. Я уже пробовал это, но кажется, что возвращаемый аргумент не относится к одному классу объектов, а к классу PHPUnit_Framework_MockObject_Stub_ReturnArgument. Поэтому я не могу вызвать какой-либо метод для возвращаемого объекта. Есть идеи? –

+0

Привет @ MarcPe-Pe вы можете предоставить код вашего теста? Минимальный сценарий оценивается – Matteo

+1

Благодарим за помощь @Matteo. Я реорганизовал свою Службу, создав вспомогательную службу, которую легче тестировать. Я предполагаю, что перед проблемой, с которой я столкнулся, можно выделить проблему дизайна в своем коде. Я буду отмечать ваш ответ так, как это было принято, так как это также самое близкое, что я пришел, чтобы ответить на этот конкретный вопрос. –

Смежные вопросы