首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FsUnit断言异常消息

FsUnit断言异常消息
EN

Stack Overflow用户
提问于 2015-08-03 15:23:26
回答 1查看 358关注 0票数 0

如何在FsUnit中断言异常消息?来自NUnit的类似内容:

代码语言:javascript
复制
[<Test>]
let ShouldThrowExceptionAndLog() = 
    Assert.That
        ((fun () -> Calculator.Calculate "-1"), 
         Throws.Exception.With.Property("Message").EqualTo("Negatives not allowed: -1"))

编辑:我不关心异常本身,我想测试异常消息。

EN

回答 1

Stack Overflow用户

发布于 2015-08-04 01:06:50

AFAIK没有开箱即用的匹配器来做你想做的事情,但你可以很容易地自己创建一个:

代码语言:javascript
复制
open NHamcrest

let throwAnyWithMessage m =
    CustomMatcher<obj>(m,
        fun f -> match f with
                    | :? (unit -> unit) as testFunc ->
                        try
                            testFunc()
                            false
                        with
                        | ex -> ex.Message = m
                    | _ -> false )

用法:

代码语言:javascript
复制
(fun () -> raise <| Exception("Foo") |> ignore) |> should throwAnyWithMessage "Foo" // pass
(fun () -> raise <| Exception("Bar") |> ignore) |> should throwAnyWithMessage "Foo" // fail
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31781590

复制
相关文章

相似问题

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