我写了这个测试用例:

assert_raise ArgumentError, myFn(a,b)


但它并没有达到我期望的效果。 myFn引发ArgumentError(do: raise ArgumentError),但assert_raise不会捕获它。

文档中的示例可以正常工作:

assert_raise ArithmeticError, fn ->
  1 + "test"
end


从文档中:


assert_raise(exception, function)
确认在执行exception期间引发function。返回挽救的异常,否则失败


我猜想在我的测试用例中,首先评估参数。但是我应该怎么写呢?

最佳答案

将函数调用包装在函数中是必经之路。

assert_raise ArgumentError, fn ->
  myFn(a, b)
end


我期望assert_raise进行函数调用,但是它需要一个函数。

关于elixir - Elixir assert_raise没有捕获异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37703632/

10-12 21:05