Python 单元测试读取文本文件并返回dict的函数

Python 单元测试读取文本文件并返回dict的函数,python,unit-testing,python-unittest,Python,Unit Testing,Python Unittest,我想对这个函数进行单元测试。它从磁盘打开一个文件,但我希望单元测试不依赖于外部数据,并且与文件系统完全解耦 def instrument_map(map_filename='Instruments.txt'): """Maps instrument prefix to filename""" with open(map_filename) as f: return dict(line.rstrip().split(' ', 1) for line in f) 我

我想对这个函数进行单元测试。它从磁盘打开一个文件,但我希望单元测试不依赖于外部数据,并且与文件系统完全解耦

def instrument_map(map_filename='Instruments.txt'):
    """Maps instrument prefix to filename"""
    with open(map_filename) as f:
        return dict(line.rstrip().split(' ', 1) for line in f)
我已经读过mocking和
StringIO
,但是我不知道如何实现这两种方法。哪种方法更好,从哪里开始

Instruments.txt
的内容如下所示:

00分
01女高音
02索洛肯


因为您没有提供任何您尝试过的代码,所以很难猜测您的问题是什么

如果你没有;我不知道从哪里开始,然后查看
mock
库中的
mock\u open
patch
函数:

>>> from mock import mock_open, patch
这两个函数应该可以帮助您模拟函数