This is awesome!

I might have more useful feedback (and PRs) in the future, because I can
see myself using this extensively.

It would be great if multiple return values for multiple calls were
supported. First use case it something like an iteration, calling some
protocol method repeatedly (possibly with different inputs). Another use
case is just calling it with different inputs, expecting different outputs.
Something like (add (square x) (square y)).

Thanks for sharing Brian.


On Tue, Oct 6, 2015 at 5:29 AM, Brian Guthrie <btguth...@gmail.com> wrote:

> Great to hear! Let me know if there are any questions I can answer.
> Feedback gratefully accepted.
>
> Cheers,
>
> Brian
>
>
> On Mon, Oct 5, 2015 at 11:56 AM, James Reeves <ja...@booleanknot.com>
> wrote:
>
>> Very nice. I was looking for something like this.
>>
>> - James
>>
>> On 5 October 2015 at 15:14, Brian Guthrie <btguth...@gmail.com> wrote:
>>
>>> Clojure protocols are a great way to encapsulate operations with side
>>> effects, but suffer from a lack of general test tooling. Shrubbery provides
>>> a small set of basic building blocks for working with them:
>>>
>>>  * stub, which accepts a variable list of protocols and a optional
>>> hashmap of simple value implementations and returns an object that reifies
>>> all given protocols;
>>>  * spy, which accepts an object with at least one protocol
>>> implementation and returns a new implementation that tracks the number of
>>> times each of its members were called;
>>>  * mock, which wraps a stub in a spy, allowing callers to supply basic
>>> function implementations and assert against those calls; and
>>>  * calls/received?, which in conjunction with the Matcher protocol
>>> provide a way to query spies and assert against their state.
>>>
>>> Shrubbery is test-framework-agnostic, avoids altering runtime state to
>>> the degree possible, and uses no macros. It should work nicely with
>>> refactorings like rename-function.
>>>
>>> https://github.com/bguthrie/shrubbery
>>>
>>> [com.gearswithingears/shrubbery "0.3.0"]
>>>
>>>
>>> New in this release:
>>>
>>> – Support for multiple protocols in both spies and stubs.
>>> – Spies attempt to automatically derive the given implementation's
>>> protocols, and tracks calls to all of them. (This behavior can be
>>> overridden.)
>>> – Replaced all macros with plain functions. (Unfortunately, this means
>>> leaning on eval in some cases.)
>>>
>>> Cheers,
>>>
>>> Brian
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>



-- 
Kind Regards,
Atamert Ölçgen

◻◼◻
◻◻◼
◼◼◼

www.muhuk.com

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to