1

我想计算一个函数被调用的次数,建议使用 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 仍然需要执行其原始角色

4

1 回答 1

0

我建议只使用patchnot 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)
于 2019-11-30T04:46:17.177 回答