簡體   English   中英

我可以使用unittest.mock.patch修補'隨機'嗎?

[英]Can I patch 'random' using unittest.mock.patch?

我有興趣測試一些使用'隨機'模塊的代碼,我希望能夠在我的測試運行時修補/插入我自己的假隨機版本,返回一個已知值,並將其恢復之后到正常的隨機模塊。 從文檔中我只能看到我可以修補類。 有沒有辦法修補功能? 像這樣的東西:

def my_code_that_uses_random():
    return random.choice([0, 1, 2, 3])

with patch.function(random.choice, return_value=3) as mock_random:
    choice = my_code_that_uses_random()
    assert choice == 3

該代碼不起作用,我需要什么呢?

patch.function似乎不存在。 您可以使用patch本身:

with patch('random.choice', return_value=3) as mock_random:
    choice = my_code_that_uses_random()
    assert choice == 3

暫無
暫無

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

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