让组织接受另一种JVM语言的方法之一是首先使用它对Java代码进行单元测试--“老板,我只打算用XXX编写一些单元测试。它永远不会投入生产。”
在Clojure中有这样做的教程吗?
我刚刚开始使用Scala来测试Java REST服务器。使用Scala编写测试允许我嵌入预期的XML输出,使用文字List
对象模拟数据库调用等,更不用说特征使得为测试提取公共代码变得非常容易。
发布于 2010-11-25 01:49:25
基本上,您需要的是clojure.test (或许多其他clojure测试库之一)和标准的Clojure Java interop。
示例:
(ns example.test-java-util
(:use
[clojure.test])
(:import [java.util HashSet]))
(defn new-empty-set []
(HashSet.))
(deftest test-empty-set
(is (= 0 (.size (new-empty-set))))
(is (= true (.isEmpty (new-empty-set))))
(is (= (new-empty-set) (new-empty-set))))
(deftest test-add-remove
(is (= (new-empty-set)
(doto (new-empty-set)
(.add "xyz")
(.remove "xyz")))))
然后,您将以各种方式运行它们。使用Maven clojure插件构建maven之类的工具,将它们作为"mvn测试“的一部分自动运行。在repl中,您可以执行以下操作:
example.test-java-util> (run-tests 'example.test-java-util)
Testing example.test-java-util
Ran 1 tests containing 4 assertions.
0 failures, 0 errors.
{:type :summary, :test 1, :pass 4, :fail 0, :error 0}
https://stackoverflow.com/questions/4269522
复制相似问题