Testing Blog

Writing Testable Code

Wednesday, August 6, 2008
Share on Google+ Share on Twitter Share on Facebook
Google
Labels: Misko Hevery

4 comments :

  1. MaxAugust 7, 2008 at 12:14 PM

    You wrote:

    If you see a switch statement you should think polymorphisms. If you see the same if condition repeated in many places in your class you should again think polymorphism.

    Could you perhaps give a little code snippet that exemplifies this? That is, what would a switch statement "look like" when turned into a polymorphic solution instead?

    ReplyDelete
    Replies
      Reply
  2. GrobyAugust 7, 2008 at 1:45 PM

    Hm. You have me stumped with the "ask, don't look for" advice.

    Who exactly would I be asking for the objects I need if I *don't* pass in a ServiceLocator? A global service locator instead?

    ReplyDelete
    Replies
      Reply
  3. Kalle KarlbergMay 21, 2011 at 3:05 AM

    Great article. I tried for one hour+ to make this point to a colleage y-day. I'll just send her this article.

    ReplyDelete
    Replies
      Reply
  4. Eirik VeaAugust 21, 2013 at 7:57 AM

    I guess "branches" would be the correct term as opposed to "seams".

    ReplyDelete
    Replies
      Reply
Add comment
Load more...

  

Labels


  • Aaron Jacobs 1
  • Adam Porter 1
  • Alan Faulkner 1
  • Alan Myrvold 1
  • Alberto Savoia 4
  • Alek Icev 2
  • Alex Eagle 1
  • Allen Hutchison 6
  • Andrew Trenk 8
  • Android 1
  • Anthony Vallone 25
  • Antoine Picard 1
  • APIs 2
  • App Engine 1
  • April Fools 2
  • Arif Sukoco 1
  • Bruce Leban 1
  • C++ 11
  • Chaitali Narla 2
  • Christopher Semturs 1
  • Chrome 3
  • Chrome OS 2
  • Dave Chen 1
  • Diego Salas 2
  • Dmitry Vyukov 1
  • Dori Reuveni 1
  • Eduardo Bravo Ortiz 1
  • Ekaterina Kamenskaya 1
  • Erik Kuefler 3
  • Espresso 1
  • George Pirocanac 2
  • Google+ 1
  • Goranka Bjedov 1
  • GTAC 54
  • Hank Duan 1
  • Harry Robinson 5
  • Havard Rast Blok 1
  • Hongfei Ding 1
  • James Whittaker 42
  • Jason Arbon 2
  • Jason Elbaum 1
  • Jason Huggins 1
  • Java 5
  • JavaScript 7
  • Jay Han 1
  • Jessica Tomechak 1
  • Jim Reardon 1
  • Jobs 14
  • Joe Allan Muharsky 1
  • Joel Hynoski 1
  • John Penix 1
  • John Thomas 3
  • Jonathan Rockway 1
  • Jonathan Velasquez 1
  • Julian Harty 5
  • Julie Ralph 1
  • Karin Lundberg 1
  • Kaue Silveira 1
  • Kevin Graney 1
  • Kirkland 1
  • Kurt Alfred Kluever 1
  • Lesley Katzen 1
  • Marc Kaplan 3
  • Mark Ivey 1
  • Mark Striebeck 1
  • Marko Ivanković 1
  • Markus Clermont 3
  • Michael Bachman 1
  • Michael Klepikov 1
  • Mike Wacker 1
  • Misko Hevery 32
  • Mobile 2
  • Mona El Mahdy 1
  • Noel Yap 1
  • Patricia Legaspi 1
  • Patrick Copeland 23
  • Patrik Höglund 5
  • Peter Arrenbrecht 1
  • Phil Rollet 1
  • Philip Zembrod 4
  • Pooja Gupta 1
  • Radoslav Vasilev 1
  • Rajat Dewan 1
  • Rajat Jain 1
  • Rich Martin 1
  • Richard Bustamante 1
  • Roshan Sembacuttiaratchy 1
  • Ruslan Khamitov 1
  • Sean Jordan 1
  • Sharon Zhou 1
  • Shyam Seshadri 4
  • Simon Stewart 2
  • Stephen Ng 1
  • Tejas Shah 1
  • Test Analytics 1
  • Tony Voellm 2
  • TotT 54
  • Vojta Jína 1
  • WebRTC 2
  • Yvette Nameth 2
  • Zhanyong Wan 6
  • Zuri Kemp 2


Archive


  •     2015
    •     December
    •     November
    •     October
    •     August
    •     June
    •     May
    •     April
    •     March
    •     February
    •     January
  •     2014
    •     December
    •     November
    •     October
    •     September
    •     August
    •     July
    •     June
    •     May
    •     April
    •     March
    •     February
    •     January
  •     2013
    •     December
    •     November
    •     October
    •     August
    •     July
    •     June
    •     May
    •     April
    •     March
    •     January
  •     2012
    •     December
    •     November
    •     October
    •     September
    •     August
  •     2011
    •     November
    •     October
    •     September
    •     August
    •     July
    •     June
    •     May
    •     April
    •     March
    •     February
    •     January
  •     2010
    •     December
    •     November
    •     October
    •     September
    •     August
    •     July
    •     June
    •     May
    •     April
    •     March
    •     February
    •     January
  •     2009
    •     December
    •     November
    •     October
    •     September
    •     August
    •     July
    •     June
    •     May
    •     April
    •     February
    •     January
  •     2008
    •     December
    •     November
    •     October
    •     September
    •     August
      • Taming the Beast (a.k.a. how to test AJAX applicat...
      • Root Cause of Singletons
      • TotT: Sleeping != Synchronization
      • Where Have All the Singletons Gone?
      • Singletons are Pathological Liars
      • TotT: 100 and counting
      • TotT: A Matter of Black and White
      • Writing Testable Code
      • GTAC Attendance Application deadline Aug15
    •     July
    •     June
    •     May
    •     April
    •     March
    •     February
    •     January
  •     2007
    •     October
    •     September
    •     August
    •     July
    •     June
    •     May
    •     April
    •     March
    •     February
    •     January

Feed

Company-wide

  • Official Google Blog
  • Public Policy Blog
  • Student Blog

Products

  • Google for Work Blog
  • Chrome Blog
  • Official Android Blog

Developers

  • Ads Developer Blog
  • Android Developers Blog
  • Developers Blog
  • Google
  • Privacy
  • Terms