非null UUID的任意实例

问题描述 投票:1回答:1

我在为某些具有UUID字段的记录类型创建Arbitrary实例时遇到麻烦。智能构造函数可确保UUID不能为null。是否有惯用的方式从Arbitrary修改UUID Test.QuickCheck.Instances.UUID实例,使其不生成空值-也就是说,生成器不应该生成00000000-0000-0000-0000-000000000000

haskell uuid quickcheck
1个回答
2
投票

您需要的关键是suchThat。当您的实例将调用suchThat以获取UUID时,请调用arbitrary。另外,如果您的类型定义为arbitrary `suchThat` (not . Data.UUID.Types.null),则在收缩UUID时,请在收缩列表上执行shrink

© www.soinside.com 2019 - 2024. All rights reserved.