old versions - marick/Midje GitHub Wiki
These old pages applied to older versions of Midje. They’re retained mainly to avoid dead links. Some of the pages are shared with the newest Midje version.
- Two words you need to know: The Midje terminology
 - Facts and prerequisites: How you describe claims about your code.
 - Extended equality: `=` extended for regular expressions, functions, etc.
 - Checkers: Prepackaged functions that perform common checks.
 
- More about facts
	
- Negating arrows: A convenient way to describe what’s not true.
 - Future facts: “Commenting out” facts in a way that prevents you from forgetting about them.
 - Tabular facts: Shorthand for checking multiple sets of values
 - Macros: Checking macroexpansions.
 
 - More about checkers
	
- Checkers for collections and strings: Containment checking that allows gaps, arbitrary ordering, nested checkers, etc.
 - Compound checkers: Checkers that combine other checkers.
 - Writing your own checkers: It’s simple.
 - Chatty checkers: Checkers that explain more about a failure.
 - Checkers within prerequisites They’re treated slightly differently than the normal case.
 
 - 
Metaconstants: A notation that avoids confusion between what’s essential about data and what’s accidental.
	
- Metaconstants as partial packets of values
 - AOT-compiling metaconstants: It should usually work, but here’s what to do if it doesn’t.
 
 - More about prerequisites
	
- Folded prerequisites: Allowing prerequisites like `(f (g 1)) => 2`.
 - Background prerequisites: Prerequisites that apply to more than one fact.
 - Partial prerequisites: Undescribed function calls can go to the real function.
 - Streaming prerequisites: Each call to a prerequisite returns a different value.
 - Prerequisites that throw exceptions: The `=throws=>` arrow.
 - Specifying call counts: Saying the function-under-test calls another function N times.
 - Checkers within prerequisites: They’re treated slightly differently than the normal case.
 - Prerequisites and protocols: Extra work is required to override protocol functions in facts.
 
 - Setup, teardown, and state: Executing code before, after, and around multiple facts or individual checks.
 
- Migrating from clojure.test
 - Production mode: Preventing Midje code from being compiled into production code.
 - Colorizing: Highlight failing and future facts.
 - 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 functions
 
- An introduction to Midje for clojure.test users
 - An example showing top-down testing using metaconstants (alternate download)
 - An Emacs minor mode for Midje
 - Emacs code to jump to a particular location in a Clojure file
 
- Roadmap
 - Help wanted
 - Error message improvements
 - Syntax errors that will not be fixed
 - Why is it called "Midje"?
 - Thoughts about replacing background
 
- Caching: Checking memoization and caching.
 - Top-down testing: “Programming by wishful thinking”
 - Testing private functions and their use