我想断言列表的大小.目前我这样做如下:
assert devices = Repo.all from d in device, where d.uuid == ^attrs.uuid
assert devices.first == devices.last
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法呢?
Gaz*_*ler 50
Kernel.length/1将返回列表的大小:
length([1,2,3]) #3
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令从Ecto查询执行此操作:
query = from d in Device, where: d.uuid == ^uuid, select: fragment("count(?)", d.id)
assert Repo.all(query)== 3
Run Code Online (Sandbox Code Playgroud)
在Ecto 2中,您可以使用Repo.aggregate/4
query = from d in Device, where: d.uuid == ^uuid)
assert Repo.aggregate(query, :count, :id) == 3
Run Code Online (Sandbox Code Playgroud)