【发布时间】:2021-03-13 05:12:51
【问题描述】:
在测试我的 Phoenix 应用程序时,我经常遇到需要比较预期记录 ID 列表和实际记录 ID 列表的情况。错误解释起来很乏味,因为 Elixir 一直将整数列表打印为字符列表,所以我的测试输出如下所示:
Assertion with == failed
code: assert H.sort(Enum.map(list1, &(&1.id()))) == H.sort(Enum.map(list2, &(&1.id())))
left: 'stu'
right: 'st'
这促使我重写我的测试以避免比较整数列表,这是可以容忍的,但只是耸耸肩并寻找这样一种语言的解决方法是一种耻辱。所以我想知道是否有办法告诉 Elixir/Mixalways 将整数列表打印为列表,而不是 charlists/charstrings。我编写了 Ruby 风格的 Elixir,而且我几乎从不使用 charlists,对我来说,它们主要是一个可以解决的问题。
感谢this answer 我知道有一种方法可以将 IEx 配置为始终将整数列表打印为列表。有没有办法在 Mix 中这样做,或者在 Elixir 本身中全局这样做,所以mix test 会采用这种行为?
【问题讨论】:
标签: elixir