質問: $value; } } ``` PriceクラスのUnittestで、上記のCommon::config('xxx')を呼び出すところで以下のエラーが発生します。 **ErrorException: Non-static method App\Modules\Common::config() should not be called statically, assuming $this from incompatible context** そこでMockeryというものを使えば解消出来るような情報を見つけたのですが、いまいち使い方がわかりません。 いくつかのサイトの情報などをみながら書いてみましたが、エラーは変わらずです。 Common::shouldReceive('config')->once()->with('xxx')->andReturn('value'); ・使い方が間違っている ・使うための手続きが間違っている(足りていない) ・根本が違う などなど、ご指摘・ご指導お願いします。
回答: エラー文を見る限りCommonクラスの'config'を定義するときに`static`にしてねってことだと思いますよ。 何か`static`できない理由等があるのでしょうか。 該当箇所のコードがあればもう少し違う角度の回答がつくかもしれません。 上記の回答は完全に的外れです、恥ずかしいですがこのまま残して置きます。 「Mockery」の使い方に関してですが「Mockery」を使ってサクッとPHPのテストを書いてみる | アライドアーキテクツ エンジニアブログを見た感じでは`Common`クラスのモックを作成してテストを行うようですので ``` use \Mockery as M; (略) $commonMock = M::mock('alias:Common'); $commonMock->shouldReceive('config')->andReturn('value'); ``` のような感じで$commonMock(Commonのモック)を作成する使い方かと思います。