这个问题是更大问题的一部分,可以在这里找到
我们有来自实体框架的类。换句话说,它们不是不可变的记录,它们是没有构造函数的可变属性列表。FsCheck 无法开箱即用地处理此类实体,并且对于每个实体,我们被迫编写单独的生成器,如下所示:
let BLOGen =
gen {
let! cat = Gen.choose(0, 1000)
let! opt = Gen.choose(0, 1000)
let! name = Arb.Default.String().Generator
let! dVal = Arb.Default.String().Generator
let res = new Business_Logic_Options ()
res.Category <- cat
res.UID <- opt
res.Name <- name
res.DefaultValue <- dVal
return res
}
正如您可以想象的那样,编写这样的东西的需要可能会阻止人们编写这种单元测试。
如何在 FsCheck 中为 C# EF 实体自动生成测试用例。