This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2023-02-07
Channels
- # announcements (32)
- # asami (11)
- # babashka (5)
- # babashka-sci-dev (4)
- # beginners (65)
- # biff (11)
- # calva (35)
- # clerk (2)
- # clj-kondo (14)
- # clj-on-windows (4)
- # clojars (4)
- # clojure (122)
- # clojure-canada (1)
- # clojure-europe (31)
- # clojure-italy (6)
- # clojure-nl (1)
- # clojure-norway (7)
- # clojure-spec (3)
- # clojure-uk (2)
- # clojurescript (3)
- # core-async (7)
- # core-logic (1)
- # data-science (13)
- # datalog (3)
- # datavis (3)
- # datomic (15)
- # deps-new (4)
- # emacs (34)
- # figwheel-main (1)
- # fulcro (1)
- # funcool (1)
- # holy-lambda (10)
- # lsp (41)
- # malli (24)
- # membrane (5)
- # midje (1)
- # off-topic (5)
- # polylith (3)
- # proletarian (6)
- # re-frame (6)
- # reitit (6)
- # remote-jobs (4)
- # sci (1)
- # shadow-cljs (96)
- # sql (31)
- # testing (23)
- # xtdb (49)
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.