3

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

谢谢

PS:我不是在寻找可以记录和重放期望的模拟库。

模拟和存根之间的区别

4

2 回答 2

9

我们这样做。

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 不存在这个问题,因此编写模拟或假实现用于测试目的是微不足道的。

于 2010-03-12T22:13:56.790 回答
0

Python mocker看起来不错。

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

于 2010-03-12T22:09:59.583 回答