2016-09-23 13 views
5

随着截屏视频和博客开始出现在Clojure 1.9的新clojure.spec功能中,越来越清楚clojure.spec能够执行很多风险缓解措施,而这些风险缓解措施以前由更“传统”的自动化测试库作为clojure.test,midje,speclj和test.check。clojure.spec打算取代传统的功能自动化测试的程度如何?

是否意图clojure.test的功能将基本上在clojure.spec中复制?如果您现在开始在Clojure 1.9+下开发一款新应用程序,那么您是否会将上面列出的测试库放在一边,而仅仅依靠clojure.spec来为您的应用程序的行为提供相似程度的信心?

回答

8

是否有意将clojure.test的功能基本上复制到clojure.spec中?

  • 没有,clojure.test的功能将不会在clojure.spec
  • 基于实例的测试和生成测试复制是不同的需要不同的工具,虽然有重叠

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

  • 我将使用(并建议)都基于实例的和生成的测试在大多数项目
  • 不过,我想结合的基于实例的测试时,会有少得多基于实例的测试套件与clojure.spec

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

  • 有些事情是很难符合规范
  • 有些事情是很难写发电机
  • 有例如输入/文件中的输出是人谁是刚刚读码
  • 不错
  • 单元测试非常有望在大多数成熟的项目
  • 而更多

的Sli关于主题,但只是提出一个友好的提醒,clojure.spec比减少项目中的单元测试用例的数量更有用。

+0

*'clojure.spec'比减少单元测试用例的数量更有用。请在此扩展 - 我认为这也是隐含的。 – Thumbnail