[英]FsUnit won't match exception - F#
我正在嘗試使用基於XUnit構建的FsUnit斷言異常。 我已經從FsUnit網站進行了此測試:
[<Fact>]
let ``boom`` () =
(fun () -> failwith "BOOM!" |> ignore) |> should throw typeof<System.Exception>
我正在使用Resharper 2016進行測試,但出現以下錯誤:
FsUnit.Xunit+MatchException
Exception of type 'FsUnit.Xunit+MatchException' was thrown.
Expected: System.Exception
Actual: was SqlJuxtFunctionalTests.Scenarios.CompareTableScenarios+boom@22
at SqlJuxtFunctionalTests.Scenarios.CompareTableScenarios.boom() in C:\projects\SqlJuxt\src\SqlJuxtFunctional.Tests\CompareTableScenarios.fs:line 22
我正在使用以下版本的庫:
我以為XUnit可能有問題,所以我嘗試通過以下測試切換為使用基於NUnit的FsUnit:
[<Test>]
let ``boom nunit`` () =
(fun () -> failwith "BOOM!" |> ignore) |> should throw typeof<System.Exception>
NUnit版本拋出MissingMethodException
:
System.MissingMethodException : Method not found: 'Void FsUnit.TopLevelOperators.should(Microsoft.FSharp.Core.FSharpFunc`2<!!0,!!1>, !!0, System.Object)'.
at File1.boom()
任何幫助將不勝感激,因為我不知所措。
我已經弄清楚了。 為了使測試正常進行,我需要使用基於NUnit的FsUnit,並將FSharp降級以使用FSharp 3.1.2.5。 如果您使用基於NUnit和FSharp 4.0.0.1的FsUnit,則會得到可怕的MissingMethodException
。
我不知道為什么代碼不能在FsUnit.Xunit上運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.