我有一个带错误的函数:
user> (-> 42 int-to-bytes bytes-to-int)
42
user> (-> 128 int-to-bytes bytes-to-int)
-128
user>
看起来我需要在转换回来时处理溢出...
最好写一个测试,以确保再也不会发生这种情况。 这个项目使用的是clojure.contrib.test-所以我写道:
(deftest int-to-bytes-to-int
(let [lots-of-big-numbers (big-test-numbers)]
(map #(is (= (-> %
int-to-bytes
bytes-to-int)
%))
lots-of-big-numbers)))
这应该是测试转换为seq的字节然后再次在10000个随机数列表上产生原始结果。 理论上看起来不错?除了没有任何测试运行。
Testing com.cryptovide.miscTest
Ran 23 tests containing 34 assertions.
0 failures, 0 errors.
答案 0 :(得分:5)
dorun
+ map
=> doseq
(doseq [x (big-test-numbers)]
(is (= x (-> x int-to-bytes bytes-to-int))))
答案 1 :(得分:1)
使用are编写测试,完全无需编写map(或doseq)表达式。
答案 2 :(得分:0)
(dorun
:)
*脸红*