问题标签 [property-based-testing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
testing - 如何保证基于属性的测试中的极端情况
最近,在阅读有关基于属性的测试的想法时,我感到非常兴奋。
但我有 1 个问题,我仍然无法在任何地方找到答案:
基于属性的测试如何确保每次都测试极端情况?
更具体地说,假设我正在使用ScalaCheck来测试我的除法功能:
由于测试用例将随机生成,我如何确定 ScalaCheck 每次都会检查用例b = 0
?
f# - 如何通过 FsCheck 生成元组
这是一个 json 生成:
我怎样才能在我string
的json
测试主体中创建它来断言最终结果。
unit-testing - 如何使用 FsCheck.NUnit 或 XUnit 使用基于属性的测试?
我是基于属性和单元测试的新手,在我的项目中我想使用这种技术,但不幸的是这很容易说...我看了一个关于 FsCheck.XUnit 库的演讲,但那个人正在测试数字函数(模数)...我想测试使用字符串、列表和数组的函数。也许你们可以给出一个提示或一个我可以查看的来源?PS,我看到的每个地方都只有数字示例,看起来很容易测试。
我想测试一些功能:
haskell - 使用 Hedgehog(或任何其他基于属性的测试框架)生成随机 GADT 的最安全方法
我有这样的 GADT:
我想要一个这样的功能:
可以生成随机TType
类型的构造函数。我可以简单地通过创建存在限定的数据类型来做到这一点
0
然后生成从到1
(包括)的随机数并AnyType
根据整数值创建。像这样:
但是这种方法对我有几个缺点:
- 没有外部类型安全。如果我向数据类型添加另一个构造函数,
TType
我可能会忘记修复测试,编译器不会对此发出警告。 - 编译器不能阻止我写作
intToAnyType 1 = MkAnyType TInt
。 - 我不喜欢这个
error
。Int
类型对我来说太宽泛了。让这种模式匹配详尽无遗会很好。
我可以在 Haskell 中做些什么来尽可能地消除这里的缺点?最好使用此模块中的生成器:
python - 使用 Hypothesis Python 生成条件数据
我想生成具有以下条件的大小为 2 的整数列表的列表。
- 第一个元素应该小于第二个元素并且
- 所有数据都应该是唯一的。
我可以使用自定义函数生成每个元组,但不知道如何使用它来满足第二个条件。
我可以通过以这种(低效?)方式迭代generate_date
几次来生成数据:
但是如何检查数据是否唯一?
例如,以下值无效:
但以下是有效的:
scala - 测试使用scalatest编译失败
我有使用PropertyChecks
特征的样本测试:
它给出以下错误:
我检查并发现org.scalacheck.Gen
我的类路径中没有。
我使用以下 Maven 依赖项:
purescript - 如何在 PureScript 中快速检查自定义 ADT?
对于使用 QuickCheck,我正在尝试实现 Arbitrary 实例:
但是 PureScript 告诉我
当我从错误消息中更改我的代码到指南时:
我仍然有一些错误:
那么,我该如何解决呢?为什么Arbitrary
不能自动导出?
fscheck - FsCheck:生成 ArrayList 的任意元素,其元素为 C# 中的任意元素
我在 C# 中使用 FsCheck,我想通过拥有 100 个 ArrayList 来生成任意的 ArrayList 来执行 PropertyBasedTesting。我有这个 ArrayList,其中每个元素都定义了 Arbitraries(它们不能更改)-
例如
System.Collections.ArrayList a = new System.Collections.ArrayList();
a.Add(Gen.Choose(1, 55));
a.Add(Arb.Generate<int>());
a.Add(Arb.Generate<string>())
如何获得此 ArrayList 的任意值?
property-based-testing - 如何在 Python 假设中递归地生成布尔表达式?
一般来说,我是 Python 的假设库和基于属性的测试的新手。我想使用以下语法生成任意嵌套的策略表达式:
((A和B)或C)
我觉得递归策略是我想要的,但我很难理解如何使用它。我拥有的代码似乎只生成一个“级别”的表达。这是我所拥有的:
如何使用 Hypothesis 生成任意嵌套的策略表达式?