framework for data-driven tests
Find a file
2019-05-31 13:54:55 +02:00
doc added subcomponents 2019-05-31 11:22:57 +02:00
main/src Specify search places in error 2019-05-31 12:14:04 +07:00
test instrument all test reporters 2019-05-29 19:26:32 +02:00
.gitignore ignore unused 2019-05-31 13:54:55 +02:00
.travis.yml minor fixis 2019-05-24 13:53:52 +02:00
deps.edn manage paths in lein context only 2019-05-17 12:25:07 +02:00
LICENSE Initial commit 2019-05-15 07:22:10 +02:00
project.clj project might now run ... 2019-05-17 09:37:56 +02:00
README.md add first doc 2019-05-31 13:10:46 +02:00

data-test

Clojars Project Build Status

Slack | DevOps Hacking with Clojure Meetup DevOps Hacking with Clojure | Website & Blog

About

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. For explicit, intentful and obvious data, data-test uses (https://github.com/juxt/aero)[aero].

Usage

Define your data test similar to deftest and express your test e.g. with is macro. The given binding [input expected] can be used in your testcode.

(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 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 file used will determine the testing context.

Reference

Loading Resources

Bindings

Resources with AERO

Generated Output

License

Copyright © 2019 meissa GmbH Licensed under the Apache License, Version 2.0 (the "License") Pls. find licenses of our subcomponents here