【问题标题】:ExUnit AssertionsExUnit 断言
【发布时间】:2018-01-19 15:53:38
【问题描述】:

在测试用例中,我们使用断言来处理错误。将它们的返回值与我们定义的匹配,测试将通过。就像我们有一个参数错误一样,我们使用这个:

 assert_raise ArgumentError, "argument error", fn ->

这将起作用并且测试将通过。如果我们有ArgumentErrorRuntimeError也是如此

但是如果我们有长这样的错误信息:

 exception Postgrex.Error (ERROR 42703 (undefined_column): column 
 j0.rating does not exist)

我们如何在测试用例中处理这些长异常消息?

谢谢

【问题讨论】:

    标签: elixir ex-unit


    【解决方案1】:

    如果不想在异常中断言消息,可以调用assert_raise/2

    assert_raise Postgrex.Error, fn ->
      ...
    end
    

    如果您只想匹配异常消息的一部分,可以将正则表达式传递给assert_raise/3

    assert_raise Postgrex.Error, ~r/undefined_column/, fn ->
      ...
    end
    

    【讨论】:

    • 谢谢这是一个简单的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    相关资源
    最近更新 更多