写一个生成失败的情况非常简单,就像这样
`
在尝试100次后无法满足such-that谓词。`
这在很多方面都是预期的,但这是一个非常无用的错误。可以采取一些措施来改善这种情况,例如
- 在异常中包括失败的规范。我只在spec.clj中看到一次gen/such-that的调用,并且它似乎有权访问规范的形式。gen/such-that需要一个异常构造函数,这里可以加以利用。
- 允许max-tries从硬编码的100更改。在处理间歇故障时,将max-tries降低到一个非常小的数字可以更容易地重现故障。