用于创建存根/虚假对象的Python库

Sta*_*low 3 python testing mocking stub

我正在寻找python存根库.可以用来在我的单元测试中创建假类/方法的东西..有没有一种简单的方法在python中实现它..

谢谢

PS:我不是在寻找模拟库,你会记录和重播期望.

模拟和存根之间的区别

S.L*_*ott 8

我们这样做.

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
Run Code Online (Sandbox Code Playgroud)

设置它们并不需要太多

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 )
Run Code Online (Sandbox Code Playgroud)

由于您不需要复杂的静态检查类型声明,因此您需要的只是具有正确方法的类.您可以轻松地强制测试属性值.

这些东西真的很容易写.您不需要很多支持或库.

在其他语言(即Java)中,很难编写一些能够通过静态编译时检查的东西.由于Python没有这个问题,因此为了测试目的而编写模拟或虚假实现是微不足道的.