작은 Laravel 어플리케이션을 만들고 있는데 phpunit을 사용하여 테스트하고 싶습니다. 하나의 컨트롤러와 매우 간단한 응용 프로그램입니다 : 당신은 내가 컨트롤러의 목구멍 객체를 전달하고있어 볼 수Phpunit 테스트 Laravel 컨트롤러
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와 해당 클라이언트를 대체하는 것입니다 나는 경우 테스트하려는. 기능 해봐요 내가 기대하고있어하지만 난 그것을 호출하는 방법을 모르는 무엇을하고있는
이 이 같은 것을내가 쉽게 (내 MyControllerTest에서) 수행 할 수 있습니다. 다음
$controller = new MyController($fakeGuzzleObject);
하지만, 어떻게 호출 할 수 있습니다 doSomething과 Request 인스턴스 전달하기
는 또한 내가 좋아하는 뭔가를 할 수 있습니다
$this->get(route/to/access/doSomething)
을 그리고 Laravel는 요청을 주입하자,하지만 그것은 조롱 목구멍 인스턴스를 사용하는 방법을 알 수 있습니까?
필자는 테스트 중에'$ this-> app-> instance (Client :: class, new FakeClient)'할 수 있다고 생각합니다. – Camilo