clojure.spec在多大程度上旨在取代传统的功能自动化测试?

mon*_*962 6 clojure functional-testing clojure.spec

随着截屏视频和博客开始出现在Clojure 1.9中的新clojure.spec功能周围,很明显clojure.spec能够执行许多风险缓解,而这些风险缓解以前是由更多"传统"自动化测试库(如clojure)执行的.test,midje,speclj和test.check.

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

Hoa*_*ael 9

是否打算在clojure.spec中基本上复制clojure.test的功能?

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

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

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

为什么不是所有的clojure.spec?(默示)

  • 有些事情很难说明
  • 有些东西很难编写生成器
  • 在文件中具有示例输入/输出对于刚刚阅读代码的人来说是很好的
  • 在大多数成熟的项目中,预计会进行单元测试
  • 和更多

稍微偏离主题,但只是提出一个友好的提示,即clojure.spec比减少项目中单元测试用例的数量有更多的实用性.