リストのサイズをアサートしたいと思います。現在、私は次のようにしています:
assert devices = Repo.all from d in device, where d.uuid == ^attrs.uuid
assert devices.first == devices.last
それを行うより良い方法はありますか?
Kernel.length/1 はリストのサイズを返します:
length([1,2,3]) #3
これは、次を使用してEctoクエリから実行できます。
query = from d in Device, where: d.uuid == ^uuid, select: fragment("count(?)", d.id)
assert Repo.all(query)== 3
Ecto 2では、 Repo.aggregate/4 を使用できます
query = from d in Device, where: d.uuid == ^uuid)
assert Repo.aggregate(query, :count, :id) == 3