Вы можете использовать метод 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'));
}
}
Благодаря. Я уже пробовал это, но кажется, что возвращаемый аргумент не относится к одному классу объектов, а к классу PHPUnit_Framework_MockObject_Stub_ReturnArgument. Поэтому я не могу вызвать какой-либо метод для возвращаемого объекта. Есть идеи? –
Привет @ MarcPe-Pe вы можете предоставить код вашего теста? Минимальный сценарий оценивается – Matteo
Благодарим за помощь @Matteo. Я реорганизовал свою Службу, создав вспомогательную службу, которую легче тестировать. Я предполагаю, что перед проблемой, с которой я столкнулся, можно выделить проблему дизайна в своем коде. Я буду отмечать ваш ответ так, как это было принято, так как это также самое близкое, что я пришел, чтобы ответить на этот конкретный вопрос. –