这个问题是可以找到的更大问题的一部分here
我们有来自Entity Framework的类。换句话说,它们不是不可变的记录,它们是没有构造函数的可变属性的正位列表。 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实体自动生成测试用例。