如何解决测试 Laravel Livewire 排序组件
我正在尝试通过调用表来测试排序,排序方法在实践中有效,但我无法生成失败的测试,我的测试总是通过,所以我没有正确测试。
重现步骤:
这是测试:
Livewire::test(Roles::class)
->call('sortBy','blah')
->assertSet('sortField','blah')
->call('roles')
->assertStatus(200);
参数 blah 应该匹配一个数据库列,我没有一个名为 blah 的列,所以应该失败,但它通过了。
组件:
class Roles extends Component
{
use WithPagination;
public $paginate;
public $query;
public $sortField = 'name';
public $sortAsc = true;
protected $queryString = ['query'];
public function render()
{
abort_if_cannot('view_roles');
return view('livewire.roles.roles');
}
public function builder()
{
return Role::orderBy($this->sortField,$this->sortAsc ? 'asc' : 'desc');
}
public function sortBy($field)
{
if ($this->sortField === $field) {
$this->sortAsc = ! $this->sortAsc;
} else {
$this->sortAsc = true;
}
$this->sortField = $field;
}
public function roles()
{
$query = $this->builder();
if ($this->query) {
$query->where('name','like','%'.$this->query.'%');
}
return $query->paginate($this->paginate);
}
public function deleteRole($id): void
{
abort_if_cannot('delete_roles');
$this->builder()->findOrFail($id)->delete();
$this->dispatchBrowserEvent('close-modal');
}
}
您使用的是最新版本的 Livewire:v2.3.6
如果我尝试运行:
wire:click.prevent="sortBy('blah')
然后我确实收到了预期的 SQL 错误。
任何人都知道我如何更新我的测试以实际看到有错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。