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

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

檢查賦予另一個可調(diào)用參數(shù)的參數(shù)

檢查賦予另一個可調(diào)用參數(shù)的參數(shù)

元芳怎么了 2022-06-14 10:43:57
我有一個函數(shù),我給它一個可調(diào)用的函數(shù)。在我的測試中,我想檢查這個函數(shù)的被調(diào)用和參數(shù)。由于函數(shù)是在參數(shù)中給出的而不是導(dǎo)入的,所以我無法模擬它(或者我沒有找到正確的方法)。然而,我模擬了一個打字函數(shù),因?yàn)樗辉谶\(yùn)行時使用,我知道它不會破壞任何東西。它運(yùn)作良好,但我不覺得它真的是 Pythonic。是否有另一種方法可以讓我可以檢查調(diào)用號和參數(shù)(如模擬)?這里是工作代碼,package/my_file.py帶有函數(shù)的文件from typing import Callable, Listdef generate_calls(function_to_call: Callable, arguments_to_give: List[int]):    for an_argument in arguments_to_give:        function_to_call(arg_1=an_argument)測試文件:from package.my_file import generate_callsdef test_call_with_arguments(mocker):   a_list = [1, 2, 3]   called_function = mocker.patch('package.my_file.Callable')   generate_calls(called_function, a_list)   # get the argument of the mock function when called   argument_dict = [one_call[1] for one_call in called_function.call_args_list]   assert argument_dict == [{'arg_1': 1}, {'arg_1': 2}, {'arg_1': 3}]
查看完整描述

1 回答

?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個贊

你可以直接generate_calls在你的測試中傳入一個 MagicMock 對象。使用如下模式


from unittest.mock import MagicMock


def call_with_1(fun):

    fun(1)


def test_called():

    mock_fun = MagicMock()

    call_with_1(mock_fun)

    mock_fun.assert_called_with(1)

    assert mock_fun.call_count == 1


查看完整回答
反對 回復(fù) 2022-06-14
  • 1 回答
  • 0 關(guān)注
  • 115 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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