遭遇したエラー

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

1method name matcher is already defined, cannot redefine

対処方法

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

けれども、よくよく見ると単純で、モックの定義が悪かったのでした。

具体的には、

1$hoge_mock = $this->createMock(Hoge::class);
2$hoge_mock
3    ->method('getFuga')
4    ->method('getFuga')
5    ->willReturn('piyo');

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

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

恥ずかしいミス。

しかし、疲れてくると、こういうミスって増えますよね。

栄養補給とリフレッシュは大切です。