次のクラスがあるとします。
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 のインスタンスを期待しており、代わりにモック オブジェクトが見つかったというエラーが表示されます。この種のシナリオをテストする方法について、誰かが光を当てることができますか? モックとスタブを使ったテストに関しては、私は初心者です。
ありがとう!