我正在尝试为我正在编写的一个小库编写一个测试(基本上)只是记录到控制台。
有没有办法像 F# 这样模拟函数?
示例:在 src/Lib/Lib.fs
module Lib
let print msg = printfn "Your message is: %s" msg
然后,在 test/LibTest/Lib.fs
module LibTest
open NUnit.Framework
open FsUnit
[<Test>]
let ``should print what I expect``() =
print "test" |> should equal "Your message is: test"
注意:我知道当前print
返回unit
- 我正在寻找一种方法来断言传递给的内容printfn
(或者,更理想的是,发送给 stdout 的内容,它较少依赖于实现)。
我试过直接分配一个模拟函数Printf.printfn
无济于事(显然,当我想到它时)。是否可以将输出捕获到控制台?或者模拟printfn
函数(这是一个实现细节,但我可以接受)。