擅长:python、mysql、java
<p>我们这样做。</p>
<pre><code>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
</code></pre>
<p>不需要花太多时间</p>
<pre><code>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 )
</code></pre>
<p>因为不需要复杂的静态检查类型声明,所以只需要一个具有正确方法的类。您可以简单地强制测试属性值。</p>
<p>这些东西真的很容易写。你不需要很多支持或库。</p>
<p>在其他语言(如Java)中,很难编写通过静态编译时检查的东西。因为Python没有这个问题,所以为了测试的目的编写mock或伪实现是很容易的。</p>