★ method name matcher is already defined, cannot redefine

未分類

遭遇したエラー

PHPUnit でモックを使ったテストを書いていたら、こちらのエラーが発生しました。

method name matcher is already defined, cannot redefine

対処方法

はじめ、「テストのメソッド名重複」かなと思いましたが、メソッド名を変えても全然解決しなくて、
モックの定義が悪かったのでした。

具体的には、

$hoge_mock = $this->createMock(Hoge::class);
$hoge_mock
    ->method('getFuga')
    ->method('getFuga')
    ->willReturn('piyo');

みたいに、 method() を 2 どコール していたんですね。

片方削除したら問題なく動き出しました。

そんだけー