遭遇したエラー

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 度コール していたんですね。

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

恥ずかしいミス。

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

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

アサヒ飲料 モンスター エナジー 355ml×24本

内容量:355ml×24本 商品サイズ(高さ×奥行×幅):166mm×237mm×353mm 原材料:砂糖類(砂糖、ぶどう糖)、高麗人参根エキス、L-カルニチンL-酒石酸塩、塩化ナトリウム、ガラナ種子エキス、クエン酸、香料、クエン酸Na、甘味料(D-リボース、スクラロース)、L-アルギニン、保存料(安息香酸)、カフェイン、ナイアシン、着色料(アントシアニン)、イノシトール、ビタミンB6、ビタミンB2、ビタミンB12 直射日光や高温多湿の場所を避けて保存してください。 原産国:日本

Amazonで詳細を見る

初めての自動テスト ―Webシステムのための自動テスト基礎

Jonathan Rasmusson
出版社:オライリージャパン  発売日:2017-09-21

Amazonで詳細を見る