Re: Mocking collaborators that are third-party libraries

George Dinwiddie <[email protected]>
Newsgroups gmane.comp.programming.test-driven-development
Organization iDIA Computing, LLC
Message-ID <[email protected]>
Eb,

On 7/11/13 5:35 PM, Eb wrote:
> Thanks George.
>
> I am following that advice also (already) so very good to get affirmation
> of that.
>
> However, I realize my question was not clear enough so continuing from your
> answer, do you always verify behavior on mocked adaptors or are there
> occasions where you don't?  That is, you just mock them but don't verify.

I tend to use a state-based approach (aka "Detroit style") so I'm 
usually verifying the result of the behavior. Often my test doubles are 
simple fakes (data sources) or stubs (data sinks, but usually query-able 
by the test).

When I'm testing with a test-double adapter, I try to be cognizant of 
the assumptions I'm making about the 3rd party system, and write 
integration tests for the real adapter to validate those assumptions. 
This has saved my butt when a new version of the 3rd party system has 
violated my assumptions.

> I hope my question is clearer.

And I hope my answer is clearer.

  - George

>
> Eb
>
>
> On Thu, Jul 11, 2013 at 4:16 PM, George Dinwiddie
> <[email protected]>wrote:
>
>> **
>>
>>
>> Eb,
>>
>>
>> On 7/11/13 2:28 PM, Eb wrote:
>>> Hi everyone -
>>>
>>> What criteria do you use to determine if a collaborator that is a
>>> third-party should be mocked and the test should verify that the
>>> collaborator was indeed called when it was supposed to be?
>>
>> I wouldn't do that. I use adapters for third-party collaborators and
>> mock my adapters to verify behavior. I also write integration tests for
>> the adapter's interaction with the third-party.
>>
>> Steve Freeman's advice is to never mock something you don't own. I've
>> only violated that advice when I needed to simulate error conditions
>> while testing my adapter.
>>
>> - George

-- 
   Want to speak at AgileDC October 8, 2013?  http://agiledc.org/speak/
  ----------------------------------------------------------------------
   * George Dinwiddie *                      http://blog.gdinwiddie.com
   Software Development                    http://www.idiacomputing.com
   Consultant and Coach                    http://www.agilemaryland.org
  ----------------------------------------------------------------------



------------------------------------

Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/testdrivendevelopment/

<*> Your email settings:
    Individual Email | Traditional

<*> To change settings online go to:
    http://groups.yahoo.com/group/testdrivendevelopment/join
    (Yahoo! ID required)

<*> To change settings via email:
    [email protected] 
    [email protected]

<*> To unsubscribe from this group, send an email to:
    [email protected]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.