|Faker||Faker is a port of Ruby Faker library to the clojure programming language.|
It is useful when you want to generate fake but good-looking data, such as in test scenarios or staging servers.
|Dibble||Inferential database seeding in Clojure|
|Stereotype||A fixtures library for setting up test data in Clojure|
|Simulant||Simulant is a library and schema for developing simulation-based tests.|
|Lazytest||Lazytest aims to be a generic library that can support many different modes and styles of testing. It defines a few generic representations for executable tests (see "Lazytest Internals", below). Any testing code that can be compiled into these representations can take advantage of Lazytest's running and reporting tools.|
|Ring-Mock||Ring-Mock is a library for creating Ring request maps for testing purposes.|
|test-this||Powerful test runner for clojure|
test-this allows you to run your clojure.test tests easily. Some of the features are:
* Fine-grained selection of which namespaces and test functions to run
* Automatically reload modified files
* No changes to source code needed, use all your clojure.test tests with all its features (including proper handling of fixtures)
* Easy to use.
|ClojureCheck||ClojureCheck is an addon for clojure.test. It adds property based testing to clojure.test following the lines of [QuickCheck][qc] for Haskell.|
|expectations||expectations is a minimalist's testing framework|
* simply require expectations and your tests will be run on JVM shutdown.
* what you are testing is inferred from the expected and actual types
* stacktraces are trimmed of clojure library lines and java.lang lines
* focused error & failure messages
|Shrink||An implementation of shrinking, for use in finding the simplest possible failure case in generative test failures. Based off of Haskell's QuickCheck, and Scala's ScalaCheck|
Say you have found a test case that fails for the inputted value of 4. The shrink function will return a sequence of integers, [0 2 -2 3 -3], that you can try as inputs to that failing test case. The aim being to identify the smallest possible failure case, which you will then report to the user.
|test.generative||Test data generation and execution harness.|
|peano||The goal of this project is to make it as easy as possible to construct test data, including hierarchical data with constraints on how datum X can be used with datum Y.|
|data.generators||Generators for random Clojure data.|
|zombie||A Clojure framework for declarative semantic data transformation. |
Sometimes during testing, concrete values don't matter. All that matters is semantics. Capture the essence of your test cases with zombie.
|cljunit||JUnit test integration for Clojure.|
The purpose of cljunit is to provide a convenient way to write JUnit tests that test Clojure namespaces. This is very useful if, for example, you want to test Clojure code within a Java IDE like Eclipse that has integrated JUnit testing facilities.
|replay||Instant test suites from repl transcripts!|
|Midje ★||Midje is a test framework for Clojure. I created it to support top-down as well as bottom-up testing, to encourage readable tests, to provide a smooth migration path from clojure.test, to support a balance between abstraction and concreteness|
|ClojureGiven||ClojureGiven is a port of Jim Weirich's rspec-given BDD test framework to Clojure. ClojureGiven is implemented on top of clojure.test through a set of macros that provide a basic Given/When/Then notation.|
|speclj||A TDD/BDD framework for Clojure, based on RSpec.|
|stories||Freeform BDD lib for Clojure|
|clj-webdriver ★||This is a Clojure library for driving a web browser using Selenium-WebDriver as the backend. Credits to mikitebeka/webdriver-clj for the initial code for this project and many of the low-level wrappers around the WebDriver API.|
|kerodon||kerodon is an interaction and testing library for ring html based apps. It is intented to look like the interaction a user would have. It is inspired by capybara.|
|touchstone||A Clojure split-testing library|
Split-testing is great for conversion optimization. We should all be doing more of it. But traditional A/B tests can be a nuisance to setup and monitor.
Touchstone is an attempt to bring dead-simple split-testing to any Clojure web application. It uses multi-armed bandit techniques to provide fast, accurate, low-maintenance conversion optimization.
|bestcase||Bestcase is an A/B and multivariate testing library for Clojure.|
|clj-bandit||A simple Clojure library for multi-armed bandit optimisation.|
Algorithms are implemented following "Bandit Algorithms for Website Optimization" by John Myles White.