例えばLaravelのトランザクションみたいなやつ
return $this->dbManager->transaction(function () {
return some;
});
こういうコードがあるメソッドに対して、dbManagerをMockeryで差し込んだとします。
その場合以下のように書くとモックできる
$mockDbManager = Mockery::mock(DatabaseManager::class);
$mockDbManager->shouldReceive('transaction')
->andReturnUsing(function($closure) {
return $closure();
});
Facade使ってたらそもそもモックの必要もないのだが、依存しているものはなるべくコンストラクタから注入したいよね!
ではまた。