第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何模擬/修補(bǔ)整個(gè)班級(jí)?

如何模擬/修補(bǔ)整個(gè)班級(jí)?

守候你守候我 2021-09-02 14:56:05
我有以下代碼:pkg1/mock_class.py:class A:    def ma(self):        print(' class_A')class B:    def __init__(self):        self.var = 'vvv'    def mb(self):        a = A()        print('class_B')        a.ma()和測(cè)試代碼:from unittest import mockimport pytestfrom pkg1.mock_class import B@pytest.fixture(scope='class')def mockA():    with mock.patch('pkg1.mock_class.A'):        yieldclass TestB:    def test_b(self, mockA):        b = B()        b.mb()我想使用fixture模擬整個(gè)A類(),并且我希望能夠在將來使用參數(shù)化配置一些返回值。基本 - 只是像上面實(shí)現(xiàn)的模擬/修補(bǔ)不是工作類 B 被模擬,我不明白為什么。謝謝你的建議。
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊

上面的代碼工作正常,我認(rèn)為它不起作用,因?yàn)樵趯?shí)際情況下它不是 - 我正在修補(bǔ)不正確的地方。

來自官方文檔(鏈接):

patch() 通過(臨時(shí))將名稱指向的對(duì)象更改為另一個(gè)對(duì)象??梢杂性S多名稱指向任何單個(gè)對(duì)象,因此要使修補(bǔ)工作,您必須確保修補(bǔ)被測(cè)系統(tǒng)使用的名稱。

基本原則是在查找對(duì)象的位置打補(bǔ)丁,該位置不一定與定義的位置相同。幾個(gè)例子將有助于澄清這一點(diǎn)。


查看完整回答
反對(duì) 回復(fù) 2021-09-02
  • 1 回答
  • 0 關(guān)注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)