- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个 FsCheck Generator生成“复杂”对象的实例。所谓复杂,是指 C# 中的现有类,它具有许多子属性和集合。这些属性和集合又需要为它们生成数据。
想象一下这个类被命名为 Menu
与子收藏 Dishes
和 Drinks
(我正在编造这个,所以忽略糟糕的设计)。我想做以下事情:
Dishes
和可变数量Drinks
. Dish
和 Drink
使用 FsCheck API 填充其属性的实例。 Menu
上设置一些其他原始属性使用 FsCheck API 的实例。 float
.
最佳答案
这不是一个坏主意——事实上,这是你能够做到这一点的关键。 FsCheck 的生成器是完全组合的。
首先请注意,如果您有其构造函数采用原始类型的不可变对象(immutable对象),例如您的 Drink 和 Dish 的样子,FsCheck 可以开箱即用地生成这些对象(使用反射)
let drinkArb = Arb.from<Drink>
let dishArb = Arb.from<Dish>
let drinksArb = Arb.Default.PositiveInt() |> Arb.convert (fun positive -> new Drinks(positive) (fun drinks -> drinks.Amount)
let drinksGen = drinksArb.Generator
let menuGenerator =
Gen.map3 (fun a b c -> Menu(a,b,c)) (Gen.listOf dishGenerator) (Gen.listOf drinkGenerator) (Arb.generate<int>)
关于f# - 如何在 FsCheck 中生成 "complex"对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21988046/
我有以下代码: var gen = from x in Arb.Generate() from int y in Gen.Choose(5, 10) where x > 5 select new tu
总结 是否有任何事件可以在每个属性案例之前运行,以便我可以为属性的每次运行运行设置和拆卸? 完整版 我希望能够使用属性测试配对行为,例如“我总是可以获取书面记录”或“readAllLines 的输出等
我的代码在使用 FsCheck 时会自动测试从 -99 到 99 的值。 Check.Quick test 我的测试函数采用整数值。 我想使用 1 到 4999 之间的值进行测试。 最佳答案 您可以使
FsCheck 有一些简洁的默认值 Arbitrary类型来生成测试数据。但是,如果我的一个考试日期取决于另一个考试日期怎么办? 例如,考虑 string.Substring() 的属性结果子字符串永
我似乎经常遇到这样的情况,我想生成一些复杂的结构,但生成的成员类型的特殊变体却不同。 例如,考虑这棵树 type Tree = | LeafNode of 'LeafData | In
我有一个 FsCheck题: 我有以下记录类型(我事先说过,有人告诉我我的单例 DU 可能有点矫枉过正,但我发现它们描述了域,因此是必要的,除非必须,否则我不会删除它们): type Name =
我有一个函数可以在一个范围内生成 double : let gen_doublein = fun mx mn -> Arb.generate |> Gen.suchThat ( (>) mx
我最初尝试创建一个固定前 5 个元素的生成器(并且在使用 Prop.forAll 的任何测试中,前五个总是会运行),但失败了。 现在我试图通过一个范围内的随机数据生成器和一个非随机数据的生成器(即固定
有没有办法通过从每个字符串列表中只选择一个项目然后连接结果来在 FsCheck 中生成一个字符串? 我只是完全卡住了,似乎无法弄清楚。我看过 docs并在 github repo 类似的东西。我从 F
我正在尝试对此功能进行测试 let extract_one_rule (rule:Rule.t) = let rec expand = function |PAlt (a,b)
我想使用 FsCheck(与 XUnit)创建类型的记录:type QueryRequest = {Symbol: string; StartDate: DateTime; EndDate: Date
我设法得到xUnit处理我的小样本组装。现在我想看看我能不能摸索FsCheck也。我的问题是在为我的函数定义测试属性时我很困惑。 也许我只是没有一个好的函数样本集,但是例如,这些函数的好的测试属性是什
是否可以使用 fscheck 生成数据,特别是列表,以便在 fscheck 之外使用?我无法在 fscheck 测试中调试比较结果看起来相等的情况,但 fscheck 说它们不相等。 我有这个对象列表
我正在 VisualStudio 中使用 FsCheck 和 NUnit 进行测试。 当前的问题是:我设法生成随机图(用于测试某些图功能),但是当测试失败时,FsCheck 会吐出整个图,并且它不使用
我想测试一个属性,我使用 2 个概率 p1 和 p2 必须满足 0 ) = (p1 0.0 && p1 0.0 && p2 0) ==> (lazy ( let bf1
我使用 FsCheck 进行基于属性的测试,因此我为自定义类型定义了一组生成器。有些类型由其他类型组成,并且所有类型都有生成器。为字母数字类型定义了一个生成器后,我想为 RelativeUrl 类型定
我正在编写一个 FSCheck 生成器来创建具有以下属性的字符串: 它们是非空的 修剪它们不会影响长度 它们不包含空格。 这是我的生成器代码: namespace Example open FsChe
如何使用 FsCheck 实现多参数生成? 我实现了以下内容以支持多参数生成: // Setup let pieces = Arb.generate |> Gen.filter (isKing
我有这样的递归类型: type QueryInfo = { Title : string Check : Client -> bool Positive :
我正在尝试采用 fscheck,但由于没有太多 C# 文档,所以遇到了很多困难。您能解释一下,为什么以下使用 When 组合器的示例会失败(显然,我不明白如何正确使用它)? [Test] p
我是一名优秀的程序员,十分优秀!