テストの書き方
今日はClojure
でのclojure.test
ライブラリを使ったテストの実行方法を書こうと思います
1. ライブラリのインポート
(ns todo.core-test
(:require [clojure.test :as t]
[todo.core :as sut]))
clojure.test
をインポートし、t
という名前を付けてテスト関連の関数をインポートします。
todo.core
は、テスト対象の名前空間をsut
という名前でインポートしています。
2. テストを書く
(t/deftest addition-test
(t/testing "加算関数のテスト")
(t/is (= 4 (sut/add 1 3))))
clojure.test
から、deftest
とtesting
、is
の3つの関数を使っています.
deftest
- テストケースを定義するためのマクロ
- 名前付きのテストを作成することができます
(deftest addition-test
(is (= 4 (+ 2 2))))
testing
- テストの説明を記述することができます
(deftest addition-test
(testing "加算関数のテスト"
(is (= 4 (+ 2 2)))
(is (= 0 (+ -1 1)))))
複数の関連テストがある場合に、各テストの意図を明確にできます
is
- 条件が正しいかどうかを確認するアサート
(is (= 4 (+ 2 2))) ;; 成功
(is (= 5 (+ 2 2))) ;; 失敗
3. テストの実行
REPLで実行
(require '[clojure.test :refer :all])
(run-tests 'todo.core-test)
;
; Testing todo.core-test
;
; Ran 1 tests containing 1 assertions.
; 0 failures, 0 errors.
CLIで実行
$ lein test
lein test todo.core-test
Ran 1 tests containing 1 assertions.
0 failures, 0 errors.