19

私はこのテストケースを書きました:

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レスキューされた例外を返し、それ以外の場合は失敗します

私のテストケースでは、引数が最初に評価されると思います。でも、どう書いたらいいの?

4

1 に答える 1

25

関数呼び出しを関数でラップする方法です。

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

関数呼び出しを期待assert_raiseしていましたが、関数が必要です。

于 2016-06-08T13:25:23.393 に答える