こんなとき使う
テスト対象の関数で、以下のように新しいインスタンスが作成されてる。
class Hoge { public function fuga() { return new SomeClass()->someMethod(); } }
作成されたSomeClassのsomeMethodを、どうにかしてモックしたい。
overload
テストコード
Mockery::mock('overload:SomeClass')->shouldReceive('someMethod') ->once() ->andReturn('hoge');
これで、SomeClassインスタンスが新しく生成された時に、モックインスタンスにすり替わる。入れ替わる。
なので、Hoge::fuga()の結果が'hoge'に変わってます。
お疲れ様でした。