【发布时间】:2017-03-04 09:26:12
【问题描述】:
我正在为 python 中的嵌入式软件代码编写单元测试。
其中一个文件需要特定文件才能存在。 (例如“/dir_name/file_name.txt”)否则会引发错误。
通常,此文件存在于硬件设备上,我的 python 代码会读取此文件。在为python代码编写单元测试时,如何模拟文件的存在?
tempfile.mkstemp() 似乎没有生成我想要的确切路径/文件名,即/dir_name/file_name.txt。它总是添加一些随机字母。
这是使用 Python3.4 的。 unittest.mock 可以做到这一点吗?
【问题讨论】:
-
你真的需要这个罚款吗?或者,或者您是在问如何模拟它,以便您正在测试的任何东西认为它存在?您能否提供代码示例以及您正在测试的内容?我想我有一个想法,但我想看看你目前的方法是什么。
-
不,它不需要存在。只要我可以让我的代码相信文件存在,那就没问题了。
-
优秀。你能展示一些代码来了解如何满足解决方案吗?这里有不同的选择,但很高兴了解您当前的方法是如何提供更相关的解决方案。
-
另一个复杂情况是,当我执行
import module_A时会发生这种情况。当我这样做import时,它需要该文件(或者我们需要让它相信该文件存在),这有点棘手......import module_A是在文件不存在时引发异常的地方。 -
是不是因为你在全局空间中设置你的文件?如果这样做,则该空间中的任何代码都将在导入模块时执行。
标签: python unit-testing nose python-unittest