在 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條經(jīng)驗 獲得超11個贊
在這種情況下,jqwik 將生成所有可能的值,因為只有 100 個候選值需要考慮,而 100 小于生成值的默認數(shù)量(1000)。由于還進行了過濾,因此只有 100 以下的 33 個數(shù)字是可整除的正在生成 3 個。
如果無法完全覆蓋某個值的可能范圍,則選擇值
來自一組典型的邊緣情況,例如最小值 (1) 和最大值 (100)
從所有值的集合中(偽)隨機。數(shù)字的隨機分布被扭曲,使較低的數(shù)字被選擇的機會較高。
添加回答
舉報
0/150
提交
取消