You can look at specs2 . It is basically functional, as described here , with the exception of:
- using 1 mutable variable to provide some DSL flexibility in one place.
- use of exceptions (optional) for the same reason
- who end up using a console or file system
source share