views:

177

answers:

3

I am looking for python stubbing library. Something that could be used to create fake classes/methods in my unit tests.. Is there a simple way to achieve it in python..

Thanks

PS: I am not looking for mocking library where you would record and replay expectation.

Difference between mock and stubs

A: 

Python mocker looks nice.

hyperboreean
Is it not a mocking framework... where you record expectation and verify them... is there nothing simpler that would just create fake implementation for me.. thanks
StackUnderflow
@StackUnderflow: You're splitting some kind of hair. Can you update your question to define a difference between "mocking" and "fake implementation". I think they're the same, but you're saying they're different.
S.Lott
+1  A: 

We do this.

class FakeSomethingOrOther( object ):
   def __init__( self ):
       self._count_me= 0
   def method_required_by_test( self ):
       return self.special_answer_required_by_test
   def count_this_method( self, *args, *kw ):
       self._count_me += 1

It doesn't take much to set them up

class TestSomething( unittest.TestCase ):
    def setUp( self ):
        self.requiredSomething = FakeSomethingOrOther()
        self.requiredSomething.attribute_required_by_test= 12
        self.requiredSomething.special_answer_required_by_test = 32
        self.to_be_tested = ActualThing( self.requiredSomething )

Since you don't require complex statically checked type declarations, all you need is a class with the right methods. You can force test attribute values in trivially.

These things are really, really easy to write. You don't need a lot of support or libraries.

In other languages (i.e., Java) it's very hard to write something that will pass muster with static compile-time checking. Since Python doesn't have this problem, it's trivial to write mocks or fake implementations for testing purposes.

S.Lott
+1  A: 

See my answer to this in this Question:

manifest
"Thread"? Do you mean "question"?
S.Lott
Edited as per suggestion
manifest