In that post I said that I hadn't used Midje's defrecord-openly and provided macros and had instead decided to write my own code to capture the arguments with which the functions of the Notifier protocol implementation were being called because:
... I didn't like having to use defrecord-openly in production code.Well, I was wrong!
It turns out that it is not necessary at all to use defrecord-openly in your production code in order to mock a protocol.
I understood it thanks to this answer in Stak Overflow: Mocking Clojure protocols.
The only thing I needed to do was to use defrecord-openly to create a fake implementation of the Notifier protocol inside the test code like this:
and then write the tests against this unimplemented fake.
This are the new Ohce tests:
As you can see it's very easy to use Midje's defrecord-openly to mock protocols.
I just misunderstood Midje's documentation the first time I tried to do it...
No comments:
Post a Comment