我正在尝试依赖注入测试用例,想知道是否有可能为测试做到这一点。
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use App\User;
use Illuminate\Http\Request;
class PageController extends Controller
{
protected $request;
protected $user;
public function __construct(Request $request, User $user)
{
$this->user = $user;
$this->request = $request;
}
这就是我通常做依赖注入的方式。
例如,以下行获取所有user
的数组实例。
$users = $this->user->all();
我想为&#39; TestCase&#39;做同样的事情。这是代码的摘录。
use App\User;
use Illuminate\Http\Request;
class ViewTest extends TestCase
{
protected $request;
protected $user;
public function __construct(Request $request, User $user)
{
$this->user = $user;
$this->request = $request;
}
这会导致以下错误。
PHP Fatal error: Uncaught TypeError: Argument 1 passed to ViewTest::__construct() must be an instance of Illuminate\Http\Request, none given, called in phar
听起来 __construct()
必须是Request
的一个实例,但我不明白其实际含义,因为此代码适用于,让& #39; s说controller
个类。
我搜索了Laravel的文档,但我不确定是否可以通过依赖注入进行测试。
如果您愿意提供任何建议,我将不胜感激。