问题标签 [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.

0 投票
2 回答
181 浏览

testing - 如何保证基于属性的测试中的极端情况

最近,在阅读有关基于属性的测试的想法时,我感到非常兴奋。

但我有 1 个问题,我仍然无法在任何地方找到答案:

基于属性的测试如何确保每次都测试极端情况?

更具体地说,假设我正在使用ScalaCheck来测试我的除法功能:

由于测试用例将随机生成,我如何确定 ScalaCheck 每次都会检查用例b = 0

0 投票
2 回答
259 浏览

f# - 如何通过 FsCheck 生成元组

这是一个 json 生成:

我怎样才能在我stringjson测试主体中创建它来断言最终结果。

0 投票
1 回答
247 浏览

unit-testing - 如何使用 FsCheck.NUnit 或 XUnit 使用基于属性的测试?

我是基于属性和单元测试的新手,在我的项目中我想使用这种技术,但不幸的是这很容易说...我看了一个关于 FsCheck.XUnit 库的演讲,但那个人正在测试数字函数(模数)...我想测试使用字符串、列表和数组的函数。也许你们可以给出一个提示或一个我可以查看的来源?PS,我看到的每个地方都只有数字示例,看起来很容易测试。

我想测试一些功能:

0 投票
1 回答
326 浏览

haskell - 使用 Hedgehog(或任何其他基于属性的测试框架)生成随机 GADT 的最安全方法

我有这样的 GADT:

我想要一个这样的功能:

可以生成随机TType类型的构造函数。我可以简单地通过创建存在限定的数据类型来做到这一点

0然后生成从到1(包括)的随机数并AnyType根据整数值创建。像这样:

但是这种方法对我有几个缺点:

  1. 没有外部类型安全。如果我向数据类型添加另一个构造函数,TType我可能会忘记修复测试,编译器不会对此发出警告。
  2. 编译器不能阻止我写作intToAnyType 1 = MkAnyType TInt
  3. 我不喜欢这个errorInt类型对我来说太宽泛了。让这种模式匹配详尽无遗会很好。

我可以在 Haskell 中做些什么来尽可能地消除这里的缺点?最好使用此模块中的生成器:

0 投票
1 回答
210 浏览

haskell - 在 Hedgehog 中通过“Gen”或通过“forAll”生成随机输入的区别

假设,我想在 Haskell中的刺猬Sum库的帮助下测试以下关联属性:

我实际上有两种生成随机输入的方法。

1. 全部生成Gen(使用GenApplicative 和 Monad 实例)

2.生成下的每个字段forAll

我想知道,两种方法有什么区别?它是否会以某种方式影响性能、并行化或随机性?

0 投票
2 回答
743 浏览

python - 使用 Hypothesis Python 生成条件数据

我想生成具有以下条件的大小为 2 的整数列表的列表。

  • 第一个元素应该小于第二个元素并且
  • 所有数据都应该是唯一的。

我可以使用自定义函数生成每个元组,但不知道如何使用它来满足第二个条件。

我可以通过以这种(低效?)方式迭代generate_date几次来生成数据:

但是如何检查数据是否唯一?

例如,以下值无效:

但以下是有效的:

0 投票
1 回答
394 浏览

scala - 测试使用scalatest编译失败

我有使用PropertyChecks特征的样本测试:

它给出以下错误:

我检查并发现org.scalacheck.Gen我的类路径中没有。

我使用以下 Maven 依赖项:

0 投票
1 回答
146 浏览

purescript - 如何在 PureScript 中快速检查自定义 ADT?

对于使用 QuickCheck,我正在尝试实现 Arbitrary 实例:

但是 PureScript 告诉我

当我从错误消息中更改我的代码到指南时:

我仍然有一些错误:

那么,我该如何解决呢?为什么Arbitrary不能自动导出?

0 投票
1 回答
389 浏览

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 的任意值?

0 投票
2 回答
218 浏览

property-based-testing - 如何在 Python 假设中递归地生成布尔表达式?

一般来说,我是 Python 的假设库和基于属性的测试的新手。我想使用以下语法生成任意嵌套的策略表达式:

((A和B)或C)

我觉得递归策略是我想要的,但我很难理解如何使用它。我拥有的代码似乎只生成一个“级别”的表达。这是我所拥有的:

如何使用 Hypothesis 生成任意嵌套的策略表达式?