gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:06:40 25 4
gpt4 key购买 nike

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

let Menu () = 
let Choice = Console.ReadLine()

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

最佳答案

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

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 返回的字符串是否是您期望的每个输入的字符串:

handleInput "A" |> should equal "whatever Function 1 returns"
handleInput "b" |> should equal "whatever Function 2 returns"
handleInput "D" |> should equal "Error"

关于unit-testing - 如何在 f# 中为模式匹配创建 fsunit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47946136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com