这是为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] 期望: (:result res)
[java] 实际: false