[英]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.