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

3 投票
2 回答
7954 浏览
提问于 2025-04-15 20:22

我在找一个Python的占位库。想要一个可以在我的单元测试中创建假类和假方法的工具。有没有简单的方法可以在Python中做到这一点呢?

谢谢!

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

模拟和占位的区别

2 个回答

0

Python mocker 看起来很不错。

一个 Mocker 实例可以用来记录和重放对多个模拟对象的期望。

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没有这个问题,所以写一些用于测试的模拟或假实现就变得很简单。

撰写回答