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/