Я пишу несколько тестов для моего помощника просмотра. Это первый раз, когда я хотел бы что-то сделать с насмешливыми объектами. Я использую стандартную PHPUnit mocking Framework.PhpUnit mocking: function undefined
Я написал функцию, которая готовит мой фиктивный объект:
private function getTestStub(){
$mockResult = array();
$mock = $this->getMock('My\Entity\Product');
$mock->expects($this->once())
->method('getId')
->will($this->returnValue(1));
$mock->expects($this->once())
->method('getName')
->will($this->returnValue('jan'));
$mock->expects($this->once())
->method('getWoonplaats')
->will($this->returnValue('Amsterdam'));
$mockResult[] = $mock;
return $mockResult;
}
Теперь при использовании этой заглушки для моих тестов я получаю следующую ошибку:
Fatal error: Call to undefined method Mock_Product_129abca6::getId()
Что я делаю неправильно здесь?
'Продукт :: getId' существует? Это не волшебный метод (например, что-то генерируемое '__call')? – chrisguitarguy
Ну, это насмехается, как вы можете видеть в моем коде – sanders
Вы должны опубликовать класс (или сопряженный), определенный в 'My \ Entity \ Product'. – chrisguitarguy