我正在构建一个小的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