2 Given阶段 Clojure 1.9(Alpha)新内置的Clojure.spec可以很轻松地做到这点: 首先,我们尝试声明两个参数可能出现的情况或者称为规格(specification),即参数 Clojure语言之父Rich Hickey推崇Simple Made Easy哲学,受其影响生成式测试在Clojure.spec中有更为简约的表达。 ThoughtWorks 2016年11月份的技术雷达把Clojure.spec移到了工具象限的评估环中,这表明值得我们对它作一番探究。 Clojure.spec是Clojure内置的一个新特性,它允许开发人员将数据结构用类型和其他验证条件(例如允许的取值范围)进行封装。 Clojure.spec提供方法很有前景,它可以让开发者在需要的时候,就能从类型和取值范围中获益。 另外,除了Clojure,其它语言也有相应的生成式测试的框架,你不妨在自己的项目中试一试。