我正在玩test.check,我正在测试一个以地图为参数的函数.这些映射确实具有已定义的结构,例如:
{:name "Bob" :age 42 :email "bob@example.com" :admin true}
关键点,有一组预期的键,其值具有不同的明确定义的生成器.
我看一下gen/map
,但是如何将它用于更结构化的键/值对并不明显:
(gen/sample (gen/map gen/keyword gen/boolean) 5) ;; => ({} {:z false} {:k true} {:v8Z false} {:9E false, :3uww false, :2s true})
这似乎是一个简单的场景,但我无法 找到 一个例子.
如何使用test.check生成结构化地图,例如此处描述的结构图?
用gen/hash-map
而不是gen/map
.
=> (gen/sample (gen/hash-map :name gen/string :age gen/int :email email-gen ; from test.check examples :admin gen/boolean)) ({:email "00w@hotmail.com", :age 0, :name "", :admin true} {:email "mi6@computer.org", :age -1, :name "Á6", :admin false} {:email "Ux4gp@hotmail.com", :age 4, :name "z", :admin true})