【发布时间】:2016-09-11 23:09:21
【问题描述】:
我有这样的数据类型:
data ABCS = A Int | B Int | ... | Z Int deriving (Data, Typeable)
在测试中,我想动态提取所有构造函数,从每个构造函数中创建一个实例,然后运行测试。
我一直在查看 Data.Typeable 和 Data.Data,但我还没有看到/理解如何仅从类型 (ABC) 开始执行此操作。
非常感谢您的帮助。
【问题讨论】:
-
Arbitrary是否已经做你想做的事了(不诉诸Data.Data)?否则,您希望向构造函数提供哪些参数? -
基本上我想将数字列表与构造函数列表一起加入。但我想动态获取构造函数列表。
-
Arbitrary在这种情况下对我没有帮助。我不希望随机生成数据。我想为每个数据实例测试一个条件。 -
您可能还想查看
smallcheck用于生成测试用例的任何内容。与 quickcheck 不同,它专为详尽的测试而设计。 -
@dfeuer 我认为答案可能是实际使用 smallcheck!谢谢推荐。
标签: haskell reflection types