我正在使用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
}
答案 0 :(得分:0)
实际上,控制器实例是按路由缓存的。
要在同一测试中使用不同参数调用同一路由,应在两次调用之间重新启动应用程序:
1961 MAIN ST #186
WATSONVILLE, CA, 95076
United States