簡體   English   中英

Mocking a Python object 沒有方法調用

[英]Mocking a Python object without method calls

想象一個 class 像這樣:

class Foo():

    def method_1(self):
        bar = Bar()
        bazz = Bazz(bar)
        return bazz.method_2()

對於單元測試,當我們從不調用Bar object 的任何方法時,我們如何模擬它,我們只是將它作為參數傳遞給Bazz構造函數? (是的,這並不理想,但是這種模式可以在頂層 class 通過依賴注入將不同的對象連接在一起中找到)。

當您執行: bar = Bar()時,您確實調用了Bar object,因此您可以輕松地模擬它:

mock_bar = mocker.MagicMock(name='Bar')
mocker.patch('foo.Bar', new=mock_bar)
# mock_foo.return_value = the new mocked object

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM