2010-03-12 56 views
2

我要尋找蟒蛇磕碰庫。一些可以用來製造假類/在我的單元測試方法..有一個簡單的方法來實現它在Python ..Python庫創建存根/虛假對象

感謝

PS:我不是在尋找嘲弄圖書館,在那裏你會記錄和重播期望。

Difference between mock and stubs

+0

「模仿對象總是使用動作驗證,存根可以去任何一種方式。」所以一個存根是一個模擬?當「存根」可以與嘲笑做同樣的事情時,說「不嘲笑」有什麼意義?請不要引用大篇幅的文章,請提供對您而言很重要的實際差異。 – 2010-03-13 02:53:08

回答

6

我們做到這一點。

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沒有這個問題,因此爲了測試目的而寫入mock或虛假實現是微不足道的。

0

Python mocker看起來不錯。

Mocker實例用於對任意數量的模擬對象命令記錄和重播 期望值。

+1

這難道不是一個模擬框架......在這裏你記錄的期望,並確認他們......是沒有什麼簡單的將只是創建假的實施對我來說..感謝 – StackUnderflow 2010-03-12 22:11:33

+4

@StackUnderflow:請區分某種頭髮。你能否更新你的問題來定義「嘲笑」和「假實施」之間的區別。我認爲他們是一樣的,但你說他們不一樣。 – 2010-03-12 22:16:33