[英]python unittest - How to preserve a function's side effects which has been converted into a Mock object?
我想計算調用 function 的次數,建議使用 python 補丁允許我調用call_count
和assert_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.