嗨!
我正在研究 clojure.spec.alpha 的一个实现,发现了一些相对“少”的测试 :)
Clojure spec 定义了一组原语,可以相互组合。
换句话说,Clojure spec 定义了一种语言来描述结构及其预测属性。
假设 spec 语义在《理由》和《指南》的非正式描述中,您如何推理声明语义与 spec 实现之间的对应关系?
我预期会有一个庞大的测试集,涵盖基本场景及其有限组合——类似归纳基础。如果归纳基础是真实的,那么其他组合也应该是好的。
您如何推理 clojure.spec.alpha 验证实现的正确性?
更新:根据 Alex Miller 的第一个回答,将问题的上下文缩小到 验证
方面。