Утверждать размер списка в эликсире Я хотел бы утверждать размер списка. В настоящее время я делаю это следующим образом: assert devices = Repo.all from d in device, where d.uuid == ^attrs.uuid assert devices.first == devices.last Есть ли лучший способ сделать это? Ответ 1 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
Ответ 1 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