相关疑难解决方法(0)

如何模拟os.listdir来伪装Python中的文件和目录?

我有一个专有的存储库格式,我正在尝试开发一个Python模块来处理这些存储库.回购格式如下:

/home/X/
       |
       + alpha/
       |
       + beta/
       |
       + project.conf
Run Code Online (Sandbox Code Playgroud)

X是一个项目.alpha并且beta是此项目中的文件夹,它们代表此项目中的.一是一个容器,在这个回购和它所代表的是真的不相关的这个问题.repo X还有根级别的文件; project.conf是这样一个文件的一个例子.

我有一个名为Project抽象项目的类X.的Project类有一个方法load()在于构建一个在内存中的表示.

class Project(object):

    def load(self):
        for entry in os.listdir(self.root):
            path = os.path.join(self.root, entry)
            if os.path.isdir(path):
                group = Group(path)
                self.groups.append(group)
                group.load()
            else:
                # process files ...
Run Code Online (Sandbox Code Playgroud)

load()通过模拟文件系统对方法进行单元测试,我有:

import unittest
from unittest import mock
import Project

class TestRepo(unittest.TestCase):

    def test_load_project(self):
        project = Project("X")

        with mock.patch('os.listdir') as …
Run Code Online (Sandbox Code Playgroud)

python unit-testing mocking

11
推荐指数
2
解决办法
3316
查看次数

标签 统计

mocking ×1

python ×1

unit-testing ×1