Skip to content
Midje provides a migration path from clojure.test to a more flexible, readable, abstract, and gracious style of testing
Branch: master
Clone or download
Latest commit 4c9db1d Apr 8, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples Better examples Jan 20, 2013
leiningen remove trailing whitespace from clj files Jun 6, 2017
src Add missing newlines to Junit emitter (Fixes #457) (#460) Apr 8, 2019
test-resources/midje Move production-mode to sweet; make it work right. May 7, 2013
test-test-paths Replace :use with :require Apr 12, 2016
test Add missing newlines to Junit emitter (Fixes #457) (#460) Apr 8, 2019
.travis.yml Colorize expected and actual outputs (#403) Sep 11, 2017 bump versions Apr 8, 2019
ECLIPSE-PUBLIC-LICENSE Pull in source for old version of `ordered` in hopes of eliminating Mar 30, 2016
LICENSE Copyright dates are very important. Feb 8, 2013 bump version in readme Oct 18, 2018
RELEASING make alpha1 version official Jun 13, 2016
project.clj bump versions Apr 8, 2019

Available via clojars

Current Version

License: MIT

Build Status

About Midje

Midje is a test framework for Clojure. I created it to allow programmers to test with ease, to provide a smooth migration path from clojure.test, to support top-down as well as bottom-up testing, to encourage readable tests, to support a balance between abstraction and concreteness, and to be gracious in its treatment of the people who use it.


To make tests more readable, Midje makes them look like examples in Clojure books. Here's how The Joy of Clojure uses syntax to explain Clojure:

Here's the same fact about Clojure in Midje, expressed in a way that's just as readable but also machine-checkable:

While Midje assumes you'll be building a test suite with lasting value, it allows you to do that while still using the repl in an idiomatic way.

Here's the start of a typical Midje repl session:

Midje has loaded the tests and run them for the first time. It's also watching for file changes. When it sees them, it loads the changed files and any dependencies. But notice that you still have a repl prompt. That means you can move rapidly and smoothly among typing at the repl to try out code samples or look up documentation, having your editor send code snippets to the repl to evaluate, and saving source or test files to immediately see what passes or fails:

Midje supplies prepackaged checkers that save you the trouble of writing common code:

And so on.

Learning Midje

Tutorial Tutorial (and sales pitch) for clojure.test user User guide Mailing list

Other Tools


  • Sean T. Allen
  • Alex Baranosky
  • Blake Bassett
  • Phillip Calçado
  • Toby Crawley
  • Chris Devine
  • dlebrero
  • Dolmio
  • André Eriksson
  • Jason Felice
  • Rafael Ferreira
  • Adam Frey
  • Anders Furseth
  • Stuart Halloway
  • Chris Hapgood
  • Sebastian Hennebrueder
  • Wilkes Joiner
  • Colin Jones
  • Jacek Lach
  • Reed Lipman
  • Ben Mabey
  • Alan Malloy
  • Brian Marick
  • Bob Martin
  • Phillip Mates
  • Paudi Moriarty
  • Dmitri Naumov
  • Alex Nixon
  • Atamert Ölçgen
  • Nick Pascucci
  • Dave Ray
  • Sébastien RoccaSerra
  • Harri Salokorpi
  • Ozan Sener
  • Ben Sinclair
  • Griffin Smith
  • Greg Spurrier
  • Børge Svingen
  • Giorgio Valoti
  • Joseph Wilk
You can’t perform that action at this time.