我想对我的测试进行参数化,类似于我在这里所做的,但是对于 xUnit 和 F#。
在链接代码中,基类实例化文件系统实现,让子类进行专门测试。
这次我只需要接收同一接口的不同实现的实例;我该如何以最好的方式解决这个问题?
这里和这里是类似的资源,但它们并没有以一种很好的 F#-esque 方式解决问题。
最好我想使用 ML 仿函数,但没有那个,我真的必须开始进行子类型化吗?
您可以在 xunit.extensions 中使用 xUnit 理论:
open System
open System.IO
open Xunit
open Xunit.Extensions
module MyTests =
[<InlineData(FileShare.None)>]
[<InlineData(FileShare.Write)>]
[<InlineData(FileShare.Delete)>]
let [<Theory>] ``test title`` (fs:FileShare) =
printfn "fileShare=%s" (fs.ToString())