forked from marick/Midje
Home
marick edited this page Feb 7, 2013
·
106 revisions
What's new in Midje 1.5
An alternate home page that will go live once 1.5 is released.
- Two words you need to know: The Midje terminology
- Basic repl tools: To get started, use `lein repl` and Midje’s repl tools.
- 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.
-
Command line tools: Checking facts from the command line: `lein midje` or `lein test`
- Lein midje: More details
- 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.
-
Repl tools
- Metadata: Add information to facts
- The compendium: Working with loaded facts
- Autotesting: Tracking file changes and reloading facts.
- Migrating from clojure.test
- Production mode: Preventing Midje code from being compiled into production code.
- Lein midje: Details beyond those given in Command Line tools.
- 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
- Print levels: Control verbosity.
- Configuration files: Control everything.
- Customizing reporting: Making Midje speak such that your continuous build server (for example) understands.
- 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