首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FsUnit不匹配异常- F#

FsUnit不匹配异常- F#
EN

Stack Overflow用户
提问于 2017-01-18 08:50:17
回答 1查看 185关注 0票数 2

我试图使用基于FsUnit的XUnit断言异常。我接受了FsUnit网站的这个测试

代码语言:javascript
复制
[<Fact>]
let ``boom`` () =
    (fun () -> failwith "BOOM!" |> ignore) |> should throw typeof<System.Exception>

我正在使用Resharper 2016运行测试,并得到以下错误:

代码语言:javascript
复制
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

我正在使用所涉及的库的下列版本:

  • FSharp.Core : 4.0.0.1
  • .Net : 4.6.2
  • FsUnit.Xunit : 1.4.1.0
  • XUnit.core : 2.1.0

我认为这可能是XUnit的一个问题,所以我尝试使用基于NUnit的FsUnit进行以下测试:

代码语言:javascript
复制
[<Test>]
let ``boom nunit`` () =
    (fun () -> failwith "BOOM!" |> ignore) |> should throw typeof<System.Exception>

NUnit版本抛出一个MissingMethodException

代码语言:javascript
复制
System.MissingMethodException : Method not found: 'Void FsUnit.TopLevelOperators.should(Microsoft.FSharp.Core.FSharpFunc`2<!!0,!!1>, !!0, System.Object)'.
   at File1.boom()

任何帮助都将是非常感谢的,因为我在我的智慧结束这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-18 09:29:16

我已经想明白了。为了使测试正常工作,我需要使用基于FsUnit的NUnit,并将FSharp降级为使用FSharp 3.1.2.5。如果您使用基于FsUnit的NUnit和FSharp 4.0.0.1,那么您将得到可怕的MissingMethodException

我不明白为什么代码不能在FsUnit.Xunit上工作。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41714879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档