spec と test を行うためのテンプレート
bb.edn
{:paths ["src"]
:deps {org.babashka/spec.alpha {:git/url "https://github.com/babashka/spec.alpha"
:git/sha "644a7fc216e43d5da87b07471b0f87d874107d1a"}
org.clojure/core.specs.alpha {:mvn/version "0.2.62"}}}
example_test.clj
(ns example_test
(:require
[clojure.core.specs.alpha :as csa]
[clojure.spec.alpha :as s]
[clojure.spec.test.alpha :as stest]
[clojure.string :as str]
[clojure.test :as t :refer [deftest is]]))
;; spec
(s/def :ex/vnum3 (s/coll-of number? :kind vector? :count 3 :distinct true :into #{}))
(prn (s/conform :ex/vnum3 [1 2 3]))
(prn (s/explain :ex/vnum3 #{1 2 3}))
(prn (s/explain :ex/vnum3 [1 1 1]))
(prn (s/explain :ex/vnum3 [1 2 :a]))
(s/def :ex/seq-of-keywords (s/* keyword?))
(prn (s/explain :ex/seq-of-keywords [:a :b :c]))
(prn (s/explain :ex/seq-of-keywords [10 20]))
;; define function
;; test
(deftest a-test
(testing "FIXME, I fail."
(is (= 0 1))))
(t/run-tests 'example_test)
テストをコピーペーストして
% bb example_test.clj