首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在f#中为模式匹配创建fsunit测试?

如何在f#中为模式匹配创建fsunit测试?
EN

Stack Overflow用户
提问于 2017-12-23 02:57:56
回答 1查看 192关注 0票数 3

我是f#和fsUnit的新手,我想知道如何使用fsUnit测试模式匹配语句。例如,如果我有以下代码,您将如何为其编写fsunit测试?

代码语言:javascript
复制
let Menu () = 
    let Choice = Console.ReadLine()

        match Choice with
        | "A" | "a" -> Function1()
        | "B" | "b" -> Function2()
        | "C" | "c" -> Function3()
        | _ ->  Printfn"Error"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-23 06:58:56

首先,您应该将实现匹配逻辑的代码与读取输入的代码分开,因为您只能测试某些调用的结果是否正确:

代码语言:javascript
复制
let handleInput choice = 
    match choice with
    | "A" | "a" -> Function1()
    | "B" | "b" -> Function2()
    | "C" | "c" -> Function3()
    | _ ->  "Error"

let menu () = 
    let choice = Console.ReadLine()
    let output = handleInput choice
    printfn "%s" output

现在,您可以编写一系列测试来检查handleInput返回的字符串是否为您期望用于每个输入的字符串:

代码语言:javascript
复制
handleInput "A" |> should equal "whatever Function 1 returns"
handleInput "b" |> should equal "whatever Function 2 returns"
handleInput "D" |> should equal "Error"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47946136

复制
相关文章

相似问题

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