我正在構建一個小的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以取代客戶端我要測試是否。函數DoSomething的是做什麼的,我期待,但我不知道該怎麼稱呼它
我可以很容易地(在我MyControllerTest)做這樣的事情:
$controller = new MyController($fakeGuzzleObject);
但後來,我怎麼能調用doSomething並傳遞Request實例?
或者我可以這樣做:
$this->get(route/to/access/doSomething)
而讓Laravel注入的請求,但我怎麼能告訴它使用一個嘲笑狂飲實例?
我想你可以''this-> app-> instance(Client :: class,new FakeClient)'在你的測試裏面。 – Camilo