开发者

Python library for creating stubs/fake objects

开发者 https://www.devze.com 2022-12-22 15:39 出处:网络
I am looking for python stubbing library. Something that coul开发者_StackOverflowd be used to create fake classes/methods in my unit tests.. Is there a simple way to achieve it in python..

I am looking for python stubbing library. Something that coul开发者_StackOverflowd 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


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.


Python mocker looks nice.

A Mocker instance is used to command recording and replaying of expectations on any number of mock objects.

0

精彩评论

暂无评论...
验证码 换一张
取 消