size参数在快速检查中用于许多功能。但是我很难理解它的确切含义。 getSize返回什么?
来自the manual:
测试数据生成器具有隐式size参数;
quickCheck
首先生成小的测试用例,然后随着测试的进行逐渐增加大小。不同的测试数据生成器以不同的方式解释size参数:有些忽略它,而列表生成器例如将其解释为生成列表长度的上限。您可以随意使用它,以控制自己的测试数据生成器。您可以使用以下方法获得size参数的值
sized :: (Int -> Gen a) -> Gen a
sized g
调用g
,将当前大小作为参数传递给它。例如,要生成范围为0到size的自然数,请使用sized $ \n -> choose (0, n)
大小控制的目的是确保测试用例足够大以显示错误,而又保持足够小以进行快速测试。
并且getSize
只是获取该size参数的另一种方法。请注意,getSize
等效于sized pure
,sized
等效于(getSize >>=)
。