load test-data dynamicaly

This commit is contained in:
jem 2019-05-20 08:58:43 +02:00
parent dc1055d1c4
commit 21b03e2ef8
4 changed files with 26 additions and 15 deletions

View file

@ -31,8 +31,9 @@
(defprotocol RunTest
"Protocol for data driven tests"
(name-prefix [dda-test])
(run-test [dda-test])
(name-prefix [dda-test]))
)
(s/defn dispatch-by-name :- s/Keyword
"Dispatcher for data-tests."
@ -50,22 +51,25 @@
(aero/read-config resource-url))
(s/defn data-file-prefix :- s/Str
[runner :- TestRunner]
(let [name-key (:name runner)]
[name-key :- s/Keyword]
(str/replace
(str/replace (str (namespace name-key) "/" (name name-key))
#"-" "_")
#"\." "/")))
#"\." "/"))
(s/defn load-test-data
[file-prefix :- s/Str]
(let [file-path (str (data-file-prefix file-prefix) ".edn")]
(println file-path)
(read-data
(io/resource file-path))))
(extend-type TestRunner
RunTest
(name-prefix [_]
(data-file-prefix _))
(data-file-prefix (:name _)))
(run-test [_]
(println (data-file-prefix _))
(let [testdata (read-data
(io/resource "data_test_test/should-test-with-data-record-version.edn"))
;(str (data-file-prefix _) ".edn")))
(let [testdata (load-test-data (data-file-prefix (:name _)))
{:keys [input expectation]} testdata]
(data-test _ input expectation))))

View file

@ -0,0 +1 @@
{:test "data"}

View file

@ -0,0 +1,2 @@
{:input 1
:expectation 1}

View file

@ -29,7 +29,11 @@
(deftest should-calculate-data-file-prefix
(is (= "data_test/runner_test/test_it"
(sut/data-file-prefix (sut/create-test-runner ::test-it)))))
(sut/data-file-prefix ::test-it))))
(deftest should-load-data
(is (= {:test "data"}
(sut/load-test-data ::test-it))))
(s/defmethod sut/data-test ::test-it
[_ input :- s/Any expectation :- s/Any]