繁体   English   中英

有没有办法让 assertPathIs() 忽略 url 的一部分?

[英]Is there a way to have assertPathIs() ignore part of the url?

在制作 Laravel Dusk 测试功能时,我试图检查我的应用程序中的路径。 但是,我的应用程序中的 URL 会发生变化,具体取决于用户或他们正在查看的内容(例如/Test/123/testing :在这种情况下, 123可以是数字的任意组合。)

可以忽略中间部分吗?

$this->browse(function (Browser $browser) {
    $browser->loginAs('email@email.com')
            ->visit('/test')
            ->assertPathIs('/test')
            ->assertSee('LinkText')
            ->clickLink('LinkText')
            ->assertPathIs('/test/(CanBeAnything)/testing');
});

看一下代码,我们可以看到在通过preg_quote()运行文本后,实际上正在执行正则表达式匹配:

$pattern = str_replace('\*', '.*', preg_quote($path, '/'));

这意味着您可以使用*进行通配符搜索,因此应该可以:

$this->browse(function (Browser $browser) {
    $browser->loginAs('email@email.com')
            ->visit('/test')
            ->assertPathIs('/test')
            ->assertSee('LinkText')
            ->clickLink('LinkText')
            ->assertPathIs('/test/*/testing');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM