问题标签 [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 投票
1 回答
628 浏览

java - 如何使用 jqwik 生成排序后的数字数组

我正在使用 java jqwik 进行基于属性的测试,我想生成排序数组,我的代码到目前为止:

0 投票
1 回答
275 浏览

java - jqwik 对已排序数组及其某些元素

以下代码旨在生成随机排序的数组,并将键作为该数组的一个元素。但是我不知道问题,键不在数组中?

为什么我的键不在数组中,我需要键是 Integer[] 数组的一个元素。

0 投票
1 回答
511 浏览

python - 如何更改假设生成的最大测试用例数?

著名的基于属性的测试框架假设能够生成大量的测试用例。

但是有没有办法限制假设生成的测试用例的数量,以缩短测试周期?

例如将特定的关键字参数提供给@given装饰器?

0 投票
2 回答
140 浏览

python - 使用基于属性的测试断言值错误

我有一个返回数字除数的函数num。如果 number 为 ,该函数将引发错误negative
我正在使用假设库来测试这个函数,但我不确定如何使它成为基于属性的测试。

这是我的测试:

此代码有效,但我如何更改它以使参数为“num”而不是硬编码。同样,对于任何数字 num,我如何断言一个是集合的一个元素。

0 投票
1 回答
104 浏览

f# - FsCheck 不使用注册的 Arbs/Gens

我正在尝试使用 FsCheck 进行基于属性的测试,但我似乎无法弄清楚如何让 FsCheck 使用我注册的基因。这是为域生成类型的代码:

这是示例测试

我有两个问题:

  1. FsCheck 似乎没有使用我提供的生成器,因为它正在生成Silly名称为空的类型。

  2. 我尝试在 gen 中为该Silly类型设置一个断点,但它从未被命中,所以我无法弄清楚发生了什么。

我以前在其他项目中也这样做过,但由于某种原因,我遇到了障碍。

0 投票
1 回答
661 浏览

python - 如何使用 Hypothesis 的复合策略执行 Python 函数?

我正在尝试执行一个用Hypothesis装饰器装饰的函数@strategy.composite

我知道我可以使用@given装饰器测试功能,例如 -

使用pytest - pytest <filename.py>

但是对于带有@strategy.composite装饰器的功能,例如-

我无法以类似的方式执行测试。
使用 pytest 时,我无法执行测试(使用python执行 python 文件什么也不做) -

我尝试添加函数调用test_foo(),但我得到了同样的错误。

然后我尝试@given在函数上方添加并得到一个不同的错误 -

如果我这样做@given()- 请注意额外的大括号,相反,我会收到另一个错误 -

我尝试将代码包装在另一个函数中 -

但这也不起作用-

(我也尝试将demo函数调用放在文件末尾,但这并没有以任何方式改变测试行为)

假设快速入门指南说调用该函数会起作用,但显然不起作用。(公平地说,文档没有指定如何使用 运行测试@composite

如何测试用 装饰的功能@strategy.composite不必使用 pytest - 我宁愿不必实际使用它,但它似乎是测试功能(用 装饰@given)最简单的方法,所以我决定走那条路。

0 投票
1 回答
108 浏览

python - 使用假设测试 Python 函数引发错误

有没有办法使用Hypothesis来检查 Python 函数在将一组特定的参数传递给它时是否引发错误?True如在,如果函数失败并且不使测试执行停止并且函数标记为失败,我希望断言是。

0 投票
1 回答
142 浏览

java - Java中自定义有序列表的基于属性的测试

鉴于以下订购要求:

所有以“foo”开头的字符串都应该是第一个。

所有以“bar”开头的字符串都应该是最后一个。

不以“foo”或“bar”开头的字符串也可以出现在列表中。

如何使用基于属性的测试来测试上述需求的实现而不感到头疼?

有没有比以下更优雅的东西:

0 投票
1 回答
67 浏览

f# - 如何在 Expecto 上注册我自己的 FsCheck 生成器

我已经构建了生成三的倍数的生成器类型。我想在 Expecto 的测试中使用它。如何注册这个生成器并告诉我的测试使用它?

0 投票
1 回答
109 浏览

scala - 在 scalacheck 中生成递归结构

我正在尝试为名为Row. 行是命名Vals 的列表,其中 aVal要么是原子的,要么Bin是嵌套的Row

这是我的代码:

它因以下堆栈跟踪而崩溃:

我的代码有什么问题,我自己诊断它的最佳方法是什么?

作为说明,我已经看到关于Gen.oneOf严格和需要Gen.lzy递归结构的评论。但是,如果在我的代码中包装了gen_valinside of的定义,Gen.lzy(...)那么我会得到堆栈溢出而不是当前的空指针异常。