0

如何使用新添加的 python 3.5 内置函数向函数编写测试os.scandir()?有模拟DirEntry对象的助手吗?

例如,关于如何模拟os.scandir()一个空文件夹和一个只有很少 2 个文件的文件夹的任何建议?

4

1 回答 1

2

如建议的那样,我的解决方案涉及@mock.patch()装饰器。我的测试变成了这样:

from django.test import TestCase, mock
from my_app.scan_files import my_method_that_return_count_of_files

mock_one_file = mock.MagicMock(return_value = ['one_file', ])

class MyMethodThatReturnCountOfFilesfilesTestCase(TestCase):
    @mock.patch('os.scandir', mock_one_file)
    def test_get_one(self):
        """ Test it receives 1 (one) file """
        files_count = my_method_that_return_count_of_files('/anything/')
        self.assertEqual(files_count, 1)
于 2016-08-18T15:54:18.707 回答