UnitTesting一个读取文本文件并返回dict的函数

时间:2015-05-29 22:47:09

标签: 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)

我已经阅读了关于嘲讽和StringIO的内容,但无法弄清楚如何实施其中任何一项。哪个是更好的方法,从哪里开始?

Instruments.txt的内容如下所示:

  

00分数
     01 SopranoCn
     02 SoloCn

1 个答案:

答案 0 :(得分:0)

由于您没有提供您尝试过的任何代码,因此很难猜出您的问题是什么。

如果您不知道从哪里开始,请查看mock_open库中的patchmock函数:

>>> from mock import mock_open, patch

这两个函数可以帮助你模拟你的功能。