Скажем, у меня есть следующий класс:РНРипхЬ: Pass фиктивного объекта в качестве параметра метода
class Document
{
private file;
public function setFile(UploadedFile $file)
{
$this->file = $file;
}
public function getExt()
{
return $this->file->guessExtension();
}
}
Я хотел бы проверить метод getExt(). Я пытался создать тест следующим образом:
$file = $this->getMock('UploadedFile');
$file->expects($this->at(0))
->method('guessExtension')
->will($this->returnValue('png'));
$doc = new Document();
$doc->setFile($file);
...
Однако, он дает мне ошибку говоря, что SetFile() ожидает экземпляр UploadedFile и фиктивный объект найден вместо этого. Может ли кто-нибудь пролить свет на то, как проверить этот сценарий? Я новичок, когда дело доходит до тестирования с помощью mocks и stub.
Спасибо!
Это не должно быть проблемой, генерируемый фиктивный класс расширяет исходный класс. Вы используете случайные пространства? –