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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何測試 Mock 函數是否被調用(pytest)

如何測試 Mock 函數是否被調用(pytest)

Qyouu 2023-12-20 10:25:49
有一個變量的抽象類。它有一個_callbacks方法,用于在值發(fā)生變化時執(zhí)行控制器類提供的函數。我想為它寫一個測試。from unittest.mock import Mockclass Variable():    def __init__(self, value=0):        self.value = value        self.callbacks = {}    def add_callback(self, func):        self.callbacks[func] = None    def _callbacks(self):        for func in self.callbacks:            func(self.value)def test_var_add_callback():    func = Mock()    var = Variable()    var.add_callback(func)    var._callbacks()    assert func.assert_called()使用 pytest 可以得到:================================== FAILURES ===================================____________________________ test_var_add_callback ____________________________    def test_var_add_callback():        func = Mock()        var = Variable()        var.add_callback(func)        var._callbacks()>       assert func.assert_called()E       AssertionError: assert NoneE        +  where None = <bound method NonCallableMock.assert_called of <Mock id='2389330693592'>>()E        +    where <bound method NonCallableMock.assert_called of <Mock id='2389330693592'>> = <Mock id='2389330693592'>.assert_calledtests\test_stack.py:25: AssertionError===================== 1 failed, 18 passed in 0.40 seconds =====================我不明白為什么它不起作用。我閱讀了理解 Python 模擬對象庫#斷言和檢查,我很確定我正在做與示例中相同的事情。None此外,即使我func手動調用,斷言也會返回def test_var_add_callback():     func = Mock()     var = Variable()     var.add_callback(func)     var._callbacks()     func()         assert func.assert_called()請幫我找到我缺少的東西。
查看完整描述

1 回答

?
蝴蝶刀刀

TA貢獻1801條經驗 獲得超8個贊

只需刪除語句assert前的關鍵字即可func.assert_called()

func.assert_called()返回None,assert None將提高AssertionError.


查看完整回答
反對 回復 2023-12-20
  • 1 回答
  • 0 關注
  • 180 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號