嗨!
我正在探索 clojure.spec.alpha 的一个实现,并发现了一个相当“少”(据我天真的预期)的一组测试 :)
Clojure spec 定义了一组可以彼此组合的原始类型。
换句话说,Clojure spec 定义了一种描述结构及其预测特性的语言。
假设 spec 语义在 论据 和 指南 中非正式描述,那么您是如何推理声明的语义与 spec 实现之间的一致性的呢?
我本以为会有一组庞大的测试覆盖基本场景及其有限数量的组合——有点归纳基础。如果归纳基础成立,则其他组合也应正常。
您是如何推理 clojure.spec.alpha 验证实现正确性的?
更新:根据 Alex Miller 的第一个回答,将问题的背景缩小到 验证
方面。