README.md
# Kale
Basic given-when-then steps for ExUnit tests. This is currently little more
than a spike: it's probably not ready to use, and the API is certainly not
stable.
## Features
* define tests as sequences of calls to `given_`, `when_` and `then_` (unfortunately `when` is a reserved word)
* match steps by calling `defwhen` etc with a string matching the one used in the step
* interpolate values into step descriptions using {braces}
* placeholder variable names are available as methods on the magic `args` variable
* pass data between steps by calling `save` and `get` with a key
* data is stored in a per-test Agent, allowing tests to run in parallel
## TODO
* Remove the magic `args`, and `save` & `get`
* Pass args and context via arguments to `defwhen` etc
* Allow pattern matching
* Return values to be saved from the function
## Usage
See the tests for examples.
## Why Kale?
As a nod to [Spinach](https://github.com/codegram/spinach).