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

标签 clojure functional-testing clojure.spec

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

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

最佳答案

Is the intent that the capabilities of clojure.test will be essentially replicated within clojure.spec?


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

  • If you were starting to build a new app today to run under Clojure 1.9+, would you be setting aside the testing libraries I listed above and instead relying solely on clojure.spec to give you a similar level of confidence around your app's behaviour?


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

    Why not all clojure.spec? (implied)


  • 有些东西很难规范
  • 有些东西很难为
  • 编写生成器
  • 在文件中包含示例输入/输出对于只是阅读代码的人来说很好
  • 大多数成熟的项目都非常期待单元测试
  • 更多

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

    关于clojure - clojure.spec 打算在多大程度上取代传统的功能自动化测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39670926/

    相关文章:

    dictionary - 同时将多个元素Conj成一个向量

    python - 有没有适合运行模拟的Python测试框架

    java - 带有 fragment 的 Android Espresso 功能测试

    symfony - 如何在要求我在 phpunit.xml 中设置 KERNEL_DIR 的 PHPUnit 中解决此问题?

    clojure - 规范/有效期的评估时间?呈指数增长

    clojure - Clojure函数的问题

    clojure - clojure中count函数的时间复杂度是多少?

    clojurescript - 当函数返回其符号时,如何从 var 中提取元数据?

    clojure - 如何使用 Clojure.Spec 指定映射中的两个键应具有相同的值?

    clojure - 使用可变参数定义我自己的 max 函数