Laravel 5集成测试中的多个HTTP请求

时间:2015-02-10 06:58:22

标签: php integration-testing laravel-5

我们正在Laravel 4中开发我们的项目。我们的一个集成测试会对同一个控制器执行两个连续的HTTP请求:

public function testFetchingPaginatedEntities() {
    $response = $this->call('GET', "foos?page=1&page_size=1");
    // assertions

    $response = $this->call('GET', "foos");
    // some more assertions
}

如您所见,第二个请求不携带任何查询字符串参数。但是,我们注意到我们的控制器在两个请求中都收到了pagepage_size

我们可以通过在调用之间重新启动测试客户端来解决此问题(如Laravel 4 controller tests - ErrorException after too many $this->call() - why?中所述):

public function testFetchingPaginatedEntities() {
    $response = $this->call('GET', "foos?page=1&page_size=1");
    // assertions

    $this->client->restart();

    $response = $this->call('GET', "foos");
    // some more assertions
}

我们现在正在考虑将我们的项目移植到Laravel 5,但看起来$this->client在测试中不再可用,因为L5不再使用Illuminate\Foundation\Testing\Client

有人可以提供重置测试客户端的替代方案吗?或者可能是一种避免重启它的方法?

1 个答案:

答案 0 :(得分:2)

$this->refreshApplication();
电话之间的

解决了我在Laravel 5.4上的问题。