[TIP] Mock objects in testing object composition?

Julius Lucks lucks at FAS.HARVARD.EDU
Tue Apr 24 12:57:49 PDT 2007

Hi All,

I am writing a python Grid class, which is composed of several  
objects of class Tile.  A simple example of this is

class Tile(object):
     def __init__(self,x=0,y=0,width=1,height=1):
         """ Initialize tile position """
         self.x = x
         self.y = y
         self.width = width
         self.height = height
         self.area = width*height

     def get_area(self):
         return self.area

class Grid(object):
     def __init__(self,dimensions):
         """Initialize the size of the grid and add tiles."""
         self.dimensions = dimensions
         num_x,num_y,width,height = self.dimensions
         self.tiles = [Tile(x,y,width,height) for x in range(num_x)  
for y in range(num_y)]

     def get_area(self):
         area = 0
         for t in self.tiles:
             area += t.get_area()
         return area

so that a Grid object owns several Tile objects, and that methods of  
the Grid object internally require methods of the tile objects.

My question is how to test this system.  I can write independent unit  
tests for the Tile class no problem since it is isolated itself.   
However, how do I test the Grid behavior, independently of a properly- 
functioning Tile class (i.e. how do I isolate the tests of the Grid  
object)?  Do I use mock Tile objects?  If so, what is the best way to  
create these?

Thanks for any help or links to resources you can give.  I'm new to  
tdd, so any advice helps!




-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.idyll.org/pipermail/testing-in-python/attachments/20070424/e24a3f1d/attachment.htm 

More information about the testing-in-python mailing list