私は小さなLaravelアプリケーションを構築しています。私はphpunitを使ってテストしたいと思います。一方のコントローラと非常にシンプルなアプリケーションです:あなたは、私はコントローラにがつがつ食うオブジェクトを渡している見ることができるようにphpunit testing Laravel controller
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use GuzzleHttp\Client;
class MyController extends Controller
{
protected $client;
public function __construct(Client $client)
{
$this->client = $client;
}
public function doSomething(Request $request)
{
...
$this->client->post(...);
...
}
}
は、だから、(私の考えはmock handlerとそのクライアントを交換することで、私はどうかをテストします。関数doSomethingのは、私が期待していますが、私はそれを呼び出す方法がわからない何をやっている
を私は簡単に(私のMyControllerTest中)のような何か行うことができます。
$controller = new MyController($fakeGuzzleObject);
をしかし、その後、どのように私は呼び出すことができますdoSomethingとRequestインスタンスを渡しますか?
は、代わりに私のような何かを行うことができます。
$this->get(route/to/access/doSomething)
をそしてLaravelはリクエストを注入してみましょうが、私はそれは嘲笑がつがつ食うのインスタンスを使用する方法を伝えることができますか?
私はあなたのテストの中で '$ this-> app-> instance(Client :: class、new FakeClient)'できると思います。 – Camilo