我正在编写一个包含大量文件操作的程序。一些操作是通过调用subprocess.Popen
来完成的,例如,split -l 50000 ${filename}
, gzip -d -f ${filename} ${filename }.
.
现在我想对程序的功能进行单元测试。但是我如何对这些函数进行单元测试?
有什么建议吗?
最佳答案
规范的方法是模拟对 Popen 的调用并用一些测试数据替换结果。看看 mock
library documentation .1
你会做这样的事情:
with mock.patch.object(subprocess, 'Popen') as mocked_popen:
mocked_popen.return_value.communicate.return_value = some_fake_result
function_which_uses_popen_communicate()
现在你可以做一些检查或任何你想测试的......
1请注意,这已作为 python3.3 中的 unittest.mock
包含在标准库中。
关于python - 如何对使用 Popen 的函数进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24399414/