是否有一个类似于 Eloquent 的 'like' 的assertDatabaseHas 通配符 'like' 比较子句,(即 '%' . . '%')

Gre*_*nie 6 laravel laravel-dusk

我正在运行 laravel dusk 测试。

我试图确定数据库是否有包含字符串的记录。

Eloquent 有一个通配符 where 子句来执行此活动。

IE'like', '%' . $stringToSearch . '%'

我试图找到一种与assertDatabaseHas我的黄昏浏览器测试执行相同比较的语法。

标准where查询...

$this->assertDatabaseHas('tableName',['TableField' => 'stringToFind']);
Run Code Online (Sandbox Code Playgroud)

我想认为存在的查询...

$this->assertDatabaseHas('tableName',['TableField' => 'like', '%' . $stringToSearch . '%']);
Run Code Online (Sandbox Code Playgroud)

Dan*_*iel 1

该函数的工作方式assertDatabaseHas()是将第二个参数 ['TableField' => 'stringToFind']传递给 Illuminate QueryBuilder 的->where()函数,因此您最终会得到

->where(['TableField' => 'stringToFind'])
Run Code Online (Sandbox Code Playgroud)

因此,您可以执行以下操作:

$this->assertDatabaseHas('tableName',['TableField', 'LIKE', "%{$stringToSearch}%"]);
Run Code Online (Sandbox Code Playgroud)

并实现你想要的