首页 > 解决方案 > 如何在 F# 中使用 nUnit 捕获失败?

问题描述

假设我有这个代码:

let a () =
    failwith "I want to fail!"

然后我有一个 nUnit 测试:

Assert.Throws(fun () -> a() |> ignore)

测试将返回:

方法具有非 void 返回值,但没有预期结果 异常没有堆栈跟踪

我如何测试我有预期失败情况的案例?

有一些关于异常的问题/答案,但我没有找到失败案例的答案。

标签: f#nunit

解决方案


你可以这样做:

 Assert.Throws(typeof<System.Exception>, TestDelegate (a)) |> ignore

附带说明一下,您可能想在 NUnit 之上尝试FsUnit一个更友好的框架。代码如下所示:

   (fun () -> a() |> ignore)
   |> should throw typeof<System.Exception>

推荐阅读