我想计算函数被调用的次数,建议使用python补丁允许我调用call_count
和assert_not_called
之类的东西来验证这一点。
我的问题是,我希望函数能像它一样执行,因为它的函数是测试所必需的,而且它是在动态数据上的,所以我不能简单地对结果进行硬编码。
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)