Clojure開発プロセス Unit test

Test Driven Development
In test-driven development，you begin by writing a test.


 * 準備
 * 1) clojure.testパッケージを使うように名前空間の宣言を編集する.
 * 2) deftestマクロで、テストを書く.
 * 3) テストを実行してみる.
 * 4) テストが通るようにコードを直す.
 * 5) テスト追加 => テスト実行 => コード編集 の繰り返し.

手順1 : 準備 : mavenでパッケージを作る
まずは、簡単なパッケージをmavenで作ってみる. ( Clojure開発プロセス maven 参照 )

$ tree . `-- src |-- main |  |-- clojure |  |   `-- oga |  |       `-- tddapp |  `-- java |      `-- oga |          `-- App.java `-- test `-- java `-- oga `-- AppTest.java
 * -- pom.xml

10 directories, 3 files

次にpom.xmlを編集する. ( Clojure開発プロセス maven 参照 )

手順 2:
例として、net/ogalab/clj/eds/edsc.cljと言うプログラムに対するテストコードを書くケースを考える.

以下のようにsrc/test/...の下にディレクトリを作り、edsc_spec.cljというユニットテスト用のファイルを作成する.

$ tree ~/local/scripts.clj/eds/src /home/oogasawa/local/scripts.clj/eds/src `-- test |-- clojure |  `-- net |      `-- ogalab |          `-- clj |              `-- eds |                  |-- edsc-spec.clj~ |                  `-- edsc_spec.clj `-- java `-- net `-- ogalab `-- clj `-- AppTest.java
 * -- main
 * |-- clojure
 * |  `-- net
 * |      `-- ogalab
 * |          `-- clj
 * |              `-- eds
 * |                  |-- edsc.clj
 * |                  |-- example
 * |                  |   `-- manual.clj
 * |                  `-- util
 * |                      `-- file.clj
 * `-- java

ファイルの内容は例えば以下のとおり.