第1页

测试数据生成器

第2页

还记得IO吗?

上次我们看了IO在Haskell中的工作方式

第3页

使用QuickCheck进行随机测试

第4页

测试数据生成器

第5页

抽样测试数据

第6页

采样Bool

第7页

采样列表

第8页

用于创建生成器的函数

第9页

采样发生器

第10页

生成套装

第11页

生成排名

记住类型排名?

第12页

生成卡片?

记住类型
卡片
?

第13页

发电机与IO

第14页

生成卡片

r卡片 :: 消息 卡片
r卡片 =  第页 <- r排名
            <- r套装
           返回(卡片 第页 )
第15页

更多示例

第16页

更多示例2

第17页

生成一只手

记住类型?

第18页

告知QuickCheck使用哪台发电机

第19页
告诉QuickCheck要使用哪个发电机

测试所有生成的卡是否有效的两种方法:

第20页

任意的

第21页

测试数据分发

第22页

手的分配

实例 任意的  哪里
  任意的 = r手

大小 清空 = 0
大小(添加 c(c) 小时)= 1+大小 小时

prop_手柄 小时 = 收集(大小 小时)真的
第23页
手的分配
第24页

更多大手牌

我们可以增加生成非空手的概率。

r手 :: 消息 
r手 = 频率[(1,返回 清空),(4, c(c) <- r卡片
                         小时 <- r手
                         返回(添加 c(c) 小时))]
第25页
更多大手牌
第26页

测试算法的属性

第27页

测试插件

第28页

测试插件,首次尝试

第29页

测试插件,第二次尝试

第30页

测试订购清单

第31页

有序列表

第32页

总结