Home - marick/Midje GitHub Wiki
What's new in Midje 1.7
A tutorial introduction
A tutorial introduction (and sales pitch) for clojure.test users
Concept index
Many of the examples in the following pages (and some others besides) can be found in the tests-as-documentation directory.
The core
- Facts: Midje's equivalent of a test
 - Checkables: Midje's equivalent of an assertion
 - Checkers: Prepackaged functions that perform common checks
 - Repl tools: A quick introduction
 - Lein-midje basics: Checking facts, both batch and incrementally (autotest)
 
Bending Midje to your will
- Using metadata to filter facts
 - Print levels: Control verbosity
 - Configuration files: Control everything
 - Using Midje without Leiningen
 - Colorizing: Highlight failing and future facts
 - Customizing reporting: Making Midje speak such that your continuous build server (for example) understands
 - Production mode: Preventing Midje code from being compiled into production code
 
Beyond the basics
- Setup and teardown
 - Future facts: "Commenting out" facts in a way that prevents you from forgetting about them
 - Tabular facts: Shorthand for checking multiple sets of values
 - for-all facts: Generative testing powered by 
clojure.test.check/quick-check - Chatty checkers: Checkers that explain more about a failure
 - Testing private functions
 - More about lein-midje
 
Top-down development
- The idea
 - A video introduction
 - Describing one checkable's prerequisites
- Variant prerequisite arrows
 - Prerequisites and protocols: Extra work is required to override protocol functions in facts
 - Using private functions in prerequisites
 
 - Establishing fact-wide prerequisites
 
Integration
- Midje-mode: Emacs mode for using Midje with a REPL
 - clojure-jump-to-file: Jump to a line of Clojure code from any Emacs buffer (usually a shell buffer)
 - Cascalog support
 
Videos
- An introduction to Midje for clojure.test users
 - An example showing [top-down testing]] using [[metaconstants]] ([alternate download)
 - A termcast about Testing with clojure.test and Midje
 - An Emacs minor mode for Midje
 - Emacs code to jump to a particular location in a Clojure file
 
Miscellany
- Why is it called "Midje"?
 - Syntax errors that will not be fixed
 - Collection checkers and strings
 - AOT-compiling metaconstants: It should usually work, but here's what to do if it doesn't
 - Partial prerequisites: Undescribed function calls can go to the real function
 - Defining checkers for use in prerequisites
 - Mixing facts and source code
 - Metaconstants as partial packets of values
 - Caching: Checking memoization and caching
 - Background: Now-discouraged forms that combine setup/teardown with fact-wide prerequisites
 
Reference
- Extended equality
 - Syntax and a little semantics
 - Customizing Reporting
 - Metadata
 - Lein midje
 - Working in the repl
- Repl tools
 - The compendium: Working with loaded facts
 - Autotesting: Tracking file changes and reloading facts
 
 - Older versions of some of these pages