为了账号安全,请及时绑定邮箱和手机立即绑定

jqwik - 如何选择测试的值?

jqwik - 如何选择测试的值?

ABOUTYOU 2023-12-30 16:17:23
在 jkwik 站点上的第一个示例中,有一个生成器可能会生成大量“可被 3 整除”的值:@Propertyboolean every_third_element_starts_with_Fizz(@ForAll("divisibleBy3") int i) {    return fizzBuzz().get(i - 1).startsWith("Fizz");}@ProvideArbitrary<Integer> divisibleBy3() {    return Arbitraries.integers().between(1, 100).filter(i -> i % 3 == 0);}jqwik 会对所有可能的值运行属性测试,还是从此列表中选择值?如果是第二种情况,那么如何选择呢?
查看完整描述

1 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

在这种情况下,jqwik 将生成所有可能的值,因为只有 100 个候选值需要考虑,而 100 小于生成值的默认数量(1000)。由于还进行了过滤,因此只有 100 以下的 33 个数字是可整除的正在生成 3 个。

如果无法完全覆盖某个值的可能范围,则选择值

  1. 来自一组典型的边缘情况,例如最小值 (1) 和最大值 (100)

  2. 从所有值的集合中(伪)随机。数字的随机分布被扭曲,使较低的数字被选择的机会较高。


查看完整回答
反对 回复 2023-12-30
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信