Skip to content
marick edited this page Apr 27, 2012 · 13 revisions

The hard-to-quantify

  • Better reporting of test failures.
  • Better error reporting for many common test-writing mistakes.
  • Everything has doc strings.

Facts

  • Facts now report their doc strings. Nested facts report nested descriptions.
          (facts "about arithmetic"
            (fact "addition"
              (+ 0 1) => 0))
            ;; FAIL "about arithmetic - addition" at (core.clj:18)
  • Tabular facts no longer require variable names to begin with "?".

Checkers

       (fact
         (/ 1 0) => (throws Exception #"Divide.+zero"))
  • every-checker and some-checker can be used to combine other checkers while still getting helpful failure messages.
        (fact 19 => (every-checker odd? (roughly 23)))
        ;; FAIL at (core.clj:15)
        ;; Actual result did not agree with the checking function.
        ;;         Actual result: 19
        ;;     Checking function: (every-checker odd? (roughly 23))
        ;;     During checking, these intermediate values were seen:
        ;;        (roughly 23) => false
  • Checker synonyms: FALSEY, TRUTHY, and irrelevant (for anything).
  • Chatty checkers can destructure their single argument.

Prerequisites

  • The =throws=> arrow can be used to throw exceptions.

  • You can use vars as well as symbols in prerequisites.

Other

  • expose-testables is another way to test private functions.
Clone this wiki locally