【发布时间】:2016-08-21 04:52:31
【问题描述】:
使用 Elixir 的 ExUnit 进行单元测试,每个人似乎都对测试失败消息感到兴奋。但是,如果我正在测试 == 以外的任何内容,我似乎无法收到有用的错误消息。
例如
assert String.contains(my_string, "expected string")
Expected truthy, got false
我更喜欢编写我的测试,以便我的失败能够提供更多信息,让我能够快速迭代他们提供的反馈。有没有办法获得更多信息的测试失败?例如
Expected "an unexpected string" to contain "expected string"
【问题讨论】:
-
您可以编写一个
assert_contains宏来执行此操作,或者将自定义消息传递给assert,它将在失败时打印,但我不确定您到底是哪种解决方案寻找。 -
所有资产所做的就是检查真实性。您可以提供一条消息,但就其本身而言,它不会自省您正在运行的在断言下产生结果的内容。这之前已经出现过,例如groups.google.com/forum/m/#!topic/elixir-lang-core/KYAkagiKr0w,但这仍然不像您要求的那样是自动的。