diff --git a/.gitignore b/.gitignore index 323df1d..d8c31d4 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ target pom.xml /src +pom.xml.asc diff --git a/main/src/data_test.clj b/main/src/data_test.clj index a48ac22..0c910eb 100644 --- a/main/src/data_test.clj +++ b/main/src/data_test.clj @@ -14,6 +14,60 @@ ; See the License for the specific language governing permissions and ; limitations under the License. (ns data-test + ^{:author "Michael Jerger, with contributions and suggestions by razum2um", + :doc "data-test separates test data from test code and allows a +more data driven approach for testing. In case of having huge amounts +of test-input & -expectations your test code will remain readable and concise. +data-test is founded on and compatible with `clojure.test`. Integration in your +test environments will work without any changes. For explicit, intentful and +obvious data, data-test uses aero (see: https://github.com/juxt/aero). + +USAGE +Define your data test similar to deftest and express your test e.g. with +is macro. The given binding [input expected] will let symbols which can be +used in your test code. + +Example: + +(ns my.cool.project-test + (:require [clojure.test :refer :all] + [data-test :refer :all])) + +(defdatatest should-test-multiple-specs [input expected] + (is (= input expected))) + +Your test data are loaded as resource and therefore data has to be located in +classpath. The path is determined by your tests namespace and your tests +definition name. In given case it is + +my/cool/project_test/should_test_multiple_spec.edn + +{:input 1 + :expected 1} + +The keys :input and :expected are fixed, the values can be anything you need. +You can have up to 11 data specifications for each test. + +my/cool/project_test/should_test_multiple_spec.[1-9].edn + +is a valid resource-location also. + +Test can be executed by using + +(clojure.test/run-tests) + + and will produce the usual test-output like: + +Running namespace tests… +FAIL in: project_test.clj: 35: should-test-multiple-specs: project_test/should_test_multiple_specs.1.edn: + expected: 1 + + actual: (2) + + +4 tests finished, problems found. 😭 errors: 0, failures: 1, ns: 1, vars: 3 + +The test data resource used will determine the testing context."} (:require [clojure.test :as t] [data-test.reporter :as reporter]