Expectations

a minimalist's unit testing framework

This project is maintained by jaycfields

expectations

adding signal, removing noise

Indention

By default expectations fns and macros will indent like any other custom fns or macros. This works fine; however, I've added the following emacs lisp to my setup, and I definitely prefer this setup to the standard setup. The Indention level is based on the settings for clojure.core functions, but you're free to tweak things in whatever way you'd like.
(define-clojure-indent
  (expect 'defun)
  (expect-let 'defun)
  (given 'defun)
  (context 1)
  (freeze-time 1)
  (redef-state 1)
  (from-each 1))

Font Lock

Syntax is very important to expectations; however, there are only so many short function names that you can responsibly use as part of a framework. However, I do like to shorten things when possible; therefore, I define the following font locks in my emacs setup. (note, not every function/marco I font lock is defined in expectations)
(dolist (x '((true        т)
             (false       ғ)
             (nil         Ø)
             (with-redefs я)
             (interaction ι)
             (a-fn1       α)
             (a-fn2       β)
             (a-fn3       γ)
             (no-op       ε)))
  (eval-after-load 'clojure-mode
    '(font-lock-add-keywords
      'clojure-mode `((,(concat "[\[({[:space:]]"
                                "\\(" (symbol-name (first x)) "\\)"
                                "[\])}[:space:]]")
                       (0 (progn (compose-region (match-beginning 1)
                                                 (match-end 1) ,(symbol-name (second x)))
                                 nil))))))
  (eval-after-load 'clojure-mode
    '(font-lock-add-keywords
      'clojure-mode `((,(concat "^"
                                "\\(" (symbol-name (first x)) "\\)"
                                "[\])}[:space:]]")
                       (0 (progn (compose-region (match-beginning 1)
                                                 (match-end 1) ,(symbol-name (second x)))
                                 nil))))))
  (eval-after-load 'clojure-mode
    '(font-lock-add-keywords
      'clojure-mode `((,(concat "[\[({[:space:]]"
                                "\\(" (symbol-name (first x)) "\\)"
                                "$")
                       (0 (progn (compose-region (match-beginning 1)
                                                 (match-end 1) ,(symbol-name (second x)))
                                 nil)))))))
The image below shows the before and after buffers. The top buffer is the buffer with the font locks applied.