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

时间:2010-03-12 22:06:51

标签: python testing mocking stub

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

由于

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

Difference between mock and stubs

2 个答案:

答案 0 :(得分:7)

我们这样做。

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

设置它们并不需要花费太多时间

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 )

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

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

在其他语言(即Java)中,编写将通过静态编译时检查进行集合的内容非常困难。由于Python没有这个问题,因此为了测试目的而编写模拟或虚假实现是微不足道的。

答案 1 :(得分:0)

Python mocker看起来不错。

  

Mocker实例用于命令记录和重放   对任意数量的模拟对象的期望。