在一次测试中使用visit()几次

时间:2018-04-03 12:15:10

标签: php phpunit laravel-5.5

我正在使用BrowserKitTestCase包测试我的Laravel 5.5应用程序。如果我在一次测试中多次使用visit()方法,每次都会收到失败,例如:

/* @test */
function my_simple_test(){
    $this->visit('product/1')
        ->see('Product #1');

    $this->visit('product/2')
        ->see('Product #2'); // assertion fails
}

但是在通过测试后的同一时间:

/* @test */
function my_simple_test_1(){
    $this->visit('product/1')
        ->see('Product #1');

/* @test */
function my_simple_test_2(){
    $this->visit('product/2')
        ->see('Product #2'); // assertion passes
}

在同一个测试中几次使用visit()是否有可能?以前是Laravel 5.1的一个案例。

更新: 如果我在同一个测试中使用visit()两次,看起来页面已缓存并且随叫随到$this->visit('product/2')我仍会看到来自/product/1的数据。

UPDATE-2 只有当我访问具有不同参数的相同路线时才会发生这种情况,如下所示的测试通过:

/* @test */
function my_simple_test(){
    $this->visit('products')
        ->see('All Products');

    $this->visit('product/2')
        ->see('Product #2'); // assertion passes
}

1 个答案:

答案 0 :(得分:0)

实际上,控制器实例是按路由缓存的。

要在同一测试中使用不同参数调用同一路由,应在两次调用之间重新启动应用程序:

1961 MAIN ST #186
WATSONVILLE, CA, 95076
United States