首页 > 解决方案 > Dusk 中的 URL 断言使用哪个函数?

问题描述

public function testPagination()
{
    $this->browse(function($first)
    {
        $first->loginAs(\App\User::find(1))
              ->visit('http://mettledlp.in.linuxense.com/user');
    });
    $this->browse(function(Browser $browser)
    {
        $browser->visit('http://mettledlp.in.linuxense.com/mailLog?page=1')
                ->clickLink('2')
                ->assertUrlIs('http://mettledlp.in.linuxense.com/mailLog?page=2');
    });
}

错误 1) Tests\Browser\MessageTest::testPagination 实际 URL [ http://mettledlp.in.linuxense.com/mailLog?page=2]不等于预期 URL [ http://mettledlp.in.linuxense.com/ mailLog?page=2]。无法断言“ http://mettledlp.in.linuxense.com/mailLog ”与 PCRE 模式“/^http://mettledlp.in.linuxense.com/mailLog\?page\=2$/u”匹配。

两个 URL 对我来说似乎都是一样的。我正在尝试单击分页导致的“2”。屏幕截图显示点击已成功完成。当我运行命令 php artisan Huang 时。我给出的错误弹出并且测试失败。

标签: laraveltestinglaravel-dusk

解决方案


assertUrlIs 断言当前 URL(不带查询字符串)与给定字符串匹配:

$browser->assertUrlIs($url);

Laravel Dusk 没有提供将 URL 与查询字符串匹配的方法。

你可以做这样的事情

$this->assertEquals($browser->driver->getCurrentURL() , 'your-url');

推荐阅读