お世話になります。
LaravelとMockeryの組み合わせで、今回の希望が叶わず、質問しました。
テストケースにて、以下のコードに対するモックを作成することで
通常とは異なる動作をさせて、以下の2点を満たしたいのです。
・DIインジェクションされたSearchにはモックされたSearchを渡したい
・Searchの戻り値をoneからtwoに変更したい。
php
1<?php 2use \Some\Place\Search; 3 4final class HogeRepository 5{ 6 public function __constract( 7 Search $search 8 ) { 9 $this->search = $search; 10 } 11 12 public function some() { 13 $value = ($this->search)(); 14 // 普通はここでoneが返るはずだが、Mockeryを使ってtwoを返るようにしたい。 15 } 16} 17 18class Search 19{ 20 public function __invoke() 21 { 22 return "one"; 23 } 24}
Mockery::Mock("\Some\Place\Search") ->shouldReceive('__invoke') ->andReturn('two');
このように書けばいいのかなと思ったのですが、oneが返ってきてしまいます。
頭を抱えてしまいまして、何卒よろしくお願いします。
テストケースそのものを掲載してください。
回答2件
あなたの回答
tips
プレビュー