簡體   English   中英

python unittest - 如何保留已轉換為 Mock object 的函數的副作用?

[英]python unittest - How to preserve a function's side effects which has been converted into a Mock object?

我想計算調用 function 的次數,建議使用 python 補丁允許我調用call_countassert_not_called之類的東西來驗證這一點。

我的問題是我希望 function 能夠像它一樣執行,因為它的 function 是測試所必需的,而且它是動態數據的,所以我不能簡單地對結果進行硬編碼。

with patch.object(shutil, 'copy') as mm:

  do_some_things()

  mm.assert_not_called()

為了do_some_things()正常工作,shutil.copy 仍然需要執行其原始角色

我建議只使用patch而不是patch.object 你仍然可以用它來完成你想要的一切。 我在~/test中沒有任何內容

from unittest import TestCase
from unittest.mock import patch

from shutil import copy

def do_some_things(src, dst):
    copy(src, dst)


class TestDoSomething(TestCase):

    def test_do_somethings(self):
        with patch('test_do_some_things.copy') as mm:
            do_some_things('~/test.txt', '~/test/test.txt')
        mm.called_once()
        print(mm.call_count)

暫無
暫無

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

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