有没有办法在Laravel Dusk中声明当前URL值?

rap*_*2-h 4 php laravel laravel-5 laravel-dusk laravel-5.5

我正在使用Laravel Dusk测试具有子域路由的Web应用程序。如果某种验证无效,我在子域之间会有一些重定向。

因此,我的目标是创建visit一个URL,$a然后断言我已被重定向,而新的URL是$b

我可以:

$browser->visit($a);
Run Code Online (Sandbox Code Playgroud)

但是我不知道在检查当前URL是什么之后马上要做什么。

iga*_*ter 8

TLDR:最方便的是assertPathIs()

A) 用于assertPathIs()断言当前相对路径与给定路径匹配。

$browser->visit('/admin')
  ->assertPathIs('/login');
Run Code Online (Sandbox Code Playgroud)

B) 用于assertUrlIs()断言当前 URL 与给定 URL 匹配。

$browser->visit('/admin')
  ->assertUrlIs('http://fullhost.com/login');
Run Code Online (Sandbox Code Playgroud)

请注意,您必须提供该 URL 的完整 URL。当您的 URL 带有外部域时,请使用它。


rap*_*2-h 7

这是一种在Laravel Dusk中检查URL值的方法:

$browser->visit($a);
$url = $browser->driver->getCurrentURL();
$this->assertEquals($b, $url);
Run Code Online (Sandbox Code Playgroud)


Jon*_*eir 5

您可以使用assertUrlIs()

$browser->assertUrlIs($b);
Run Code Online (Sandbox Code Playgroud)