编写一个生成器失败的规范很容易
`
在100次尝试后无法满足such-that谓词。`
这在许多方面都是可以预料的,但这是一个很不实用的事件。可以增强该功能的一些方式包括
- 将失败的规范包含在异常中。我在spec.clj中我只看到一次gen/such-that的调用,看来它手上已经有了规范的形式。gen/such-that需要一个异常构造函数,这可以在这里使用。
- 允许max-tries从100的硬编码值中更改。当处理间歇性失败时,将max-tries降低到一个非常小的数字可以更容易地重现失败。