请在2024年Clojure状态调查中分享您的想法!

欢迎!请在关于页面了解有关如何使用此工具的更多信息。

0
Clojure
这是编写针对CLJ-1633的最低先验知识失败测试的尝试。通过“最低先验知识”,我的意思是在存在错误的情况下测试失败,但可以想象在没有深入了解错误细节的情况下编写这样的测试。我认为寻找此类测试是一种很好的方法,可以找到测试覆盖的空白,并产生将在以后发现新颖回归的测试。

方法:生成可在序列上执行的单一操作列表,更改该序列。拷贝那个操作列表两次,并向每个插入应保留不变性的操作。执行这两个操作列表并验证最终结果相同。

在CLJ-1633未修复的情况下,我们得到以下输出


     [java] 测试 clojure.test-clojure.sequences
     [java]
     [java] 在(seq-gentest)中失败(sequences.clj:135)
     [java] {:acts1 (->> nil (cons :foo) (cons :foo) into-array next (apply list)),
     [java]  :acts2 (->> nil (cons :foo) (cons :foo) next),
     [java]  :result1 (:foo :foo),
     [java]  :result2 (:foo),
     [java]  :pass false}
     [java]
     [java] expected: (:result res)
     [java]   实际: false

1 答案

0
参考资料:https://clojure.atlassian.net/browse/CLJ-1643(由michaelblume报告)
...