Hi folks, just discovered this channel and figured I'd say hello.
I took over maintenance responsibilities for Midje a few years ago while I was working at Nubank, which, at the time was using Midje heavily.
To give some context on where Midje is at these days:
I still (try to) keep up on issues and support but generally wouldn't recommend it for new projects.
At Nubank we re-implemented the best parts of Midje as a series of smaller composeable libraries:
- matcher-combinators for asserting over nested data-structures in a declarative way (https://github.com/nubank/matcher-combinators). Similar to Midje's checkers but with better failure reports
- mock-fn, similar to mocking in Midje, but even more expressive (https://github.com/nubank/mockfn)
These, when combined with clojure.test, gives you most of what Midje had (except for autotest rerunning, which Kaocha may add one day as sketeched in https://github.com/lambdaisland/kaocha/pull/284).
Notably, we didn't carry over the following aspects of Midje into the new tools:
- loading a namespace mixes code evaluation and test execution effects. This can get in the way of REPL-driven workflows and analysis tools.
- assertions are described in a non-S-expression infix style (fact (inc 1) => 2 (dec 1) => 0). This made it hard to use structural editing tools.
- the library takes a strong "all or nothing" approach, where as most Clojure libraries are small and composable.