使用Laravel 5中的扩展Request类进行测试

时间:2015-08-03 11:56:46

标签: php laravel laravel-5

我在Laravel 5中使用扩展的Request类。我跟着this post设置了自定义请求类。当我通过浏览器运行我的代码时,它可以工作。

但是,当我运行我的集成测试(使用PHPUnit)时,我的扩展类没有被CrawlerTrait.php中的调用方法使用,因为call方法创建了一个新的Illuminate \ Http \ Request对象。我尝试使用以下方法覆盖调用方法:

use Illuminate\Http\Request; 

class ApiRequest extends Request {

public function __construct(array $query = array(), array $request = array(), array $attributes = array(), array $cookies = array(), array $files = array(), array $server = array(), $content = null)
{
    parent::__construct($query, $request, $attributes, $cookies, $files, $server, $content);

    // other code here
}

ApiRequest 类是我的扩展请求类。

abstract class ApiController extends Controller
{
  public function __construct(ApiRequest $request, ApiResponse $response)
    {

    }
}

ApiRequest类被注入ApiController构造函数。

{{1}}

在将ApiRequest对象注入ApiController时,它与调用方法中创建的对象的实例不同。它似乎在注入时创建了一个新的ApiRequest对象。因此,请求对象为空,我的测试失败。

如何让我的测试与扩展的Request类一起使用?

0 个答案:

没有答案