我正在编写一个单元测试,其中生成了一个(相当长的)二进制文件,我想断言生成的二进制文件等于我期望生成的二进制文件。我正在通过“ rebar eunit ”运行eunit。
事实是,当此断言失败时,输出将缩写为“ ... ”,我想查看完整的输出,以便找出不同之处。
我现在使用“ ?debugFmt() ”作为临时解决方案,但我想知道是否有替代方案(某个配置选项或参数可以应用于“ ?_assertEqual() () ) "所以输出仅在断言失败时显示)。
提前致谢!
编辑:由于 legoscia 的 答案,我包含一个使用测试生成器的测试样本,并带有多个断言:
can_do_something(SetupData) ->
% ... some code ...
[?_assertEqual(Expected1, Actual1), ?_assertEqual(Expected2, Actual2)].
最佳答案
我能想到的在控制台中实际显示值的最佳方法是这样的:
Actual =:= Expected orelse ?assert(?debugFmt("~p is not ~p", [Actual, Expected]))
?debugFmt
返回 ok
,这不是真的,所以断言总是会失败。或者,要将其用作测试生成器,可以将整个内容放入
?_assert
:?_assert(Actual =:= Expected orelse ?debugFmt("~p is not ~p", [Actual, Expected]))
关于erlang - 当 ?_assertEqual 失败时显示完整的预期和值(value)信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10952767/