6

随着关于 Clojure 1.9 中新的 clojure.spec 功能的截屏视频和博客开始出现,很明显 clojure.spec 能够完成许多以前由更“传统”的自动化测试库(如 clojure)执行的风险缓解.test、midje、speclj 和 test.check。

clojure.test 的功能是否会在 clojure.spec 中复制?如果您今天开始构建一个在 Clojure 1.9+ 下运行的新应用程序,您是否会搁置我上面列出的测试库,而仅仅依靠 clojure.spec 来为您的应用程序行为提供类似程度的信心?

4

1 回答 1

9

clojure.test 的功能是否会在 clojure.spec 中复制?

  • 不,clojure.test 的功能不会在 clojure.spec 中复制
  • 基于示例的测试和生成测试是针对不同需求的不同工具,尽管存在重叠

如果您今天开始构建一个在 Clojure 1.9+ 下运行的新应用程序,您是否会搁置我上面列出的测试库,而仅仅依靠 clojure.spec 来为您的应用程序行为提供类似程度的信心?

  • 我将在大多数项目中使用(并建议)基于示例的测试和生成测试
  • 但是,我认为将基于示例的测试套件与 clojure.spec 结合使用时,基于示例的测试将会少得多

为什么不是全部 clojure.spec?(默示)

  • 有些事情很难规范
  • 有些事情很难编写生成器
  • 在文件中包含示例输入/输出对于只是阅读代码的人来说很好
  • 在大多数成熟的项目中,单元测试几乎是预期的
  • 和更多

稍微偏离主题,但只是友好地提醒一下,clojure.spec 比减少项目中的单元测试用例数量更有用。

于 2016-09-24T10:18:53.913 回答