Testing Blog

How to Think About the "new" Operator with Respect to Unit Testing

Thursday, July 10, 2008
Share on Google+ Share on Twitter Share on Facebook
Google
Labels: Misko Hevery

3 comments :

  1. FuzzymanJuly 11, 2008 at 6:58 AM

    @Josh

    We (Resolver Systems) use a combination of both - although we probably do a bit too much mocking in unit tests.

    I often find that dependency injection just adds *another* layer that also needs to be tested though.

    ReplyDelete
    Replies
      Reply
  2. Josh PetersJuly 11, 2008 at 8:38 AM

    @fuzzyman

    Yeah, I'm pretty familiar with mocking too much (both in the context of testing and regular life) ;)

    I'm a Java guy so I'm using Spring for all of my injection needs (which is pretty well tested).

    Layers are great so long as they add flexibility and don't get in your way.

    ReplyDelete
    Replies
      Reply
  3. Shyam SeshadriJuly 12, 2008 at 9:59 PM

    ah I see what you are getting at. Well, with the ask approach, I believe what he basically means is that the constructor just says that I need this, and it is up to who ever is using that class to provide it. You can go one step higher and plug in a framework which provides all of these, or you might have to, in your main class, construct the object graph creating all the base and calling these constructors which ask for these things.

    So in that way, it moves away from a registry pattern. True you can use a registry pattern to satisfy this as well, but it allows you to inject mocks and ignore objects which you don't care about.

    Of course, you could just use Guice or Spring which allows easy dependency injection and managing dependencies which create your object graph, and why wouldn't you ? It makes life so much easier :D

    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
    •     July
      • Circular Dependency in constructors and Dependency...
      • TotT: Testing Against Interfaces
      • How to Write 3v1L, Untestable Code
      • Breaking the Law of Demeter is Like Looking for a ...
      • YUI and GWT... How do you test?
      • Call for Attendance: GTAC 2008
      • How to Think About the "new" Operator with Respect...
      • TotT: EXPECT vs. ASSERT
      • Announcing: New Google C++ Testing Framework
    •     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