[英]How to unit test a function that uses Popen?
我正在編寫一個包含大量文件操作的程序。 一些操作是通過調用subprocess.Popen
完成的,例如, split -l 50000 ${filename}
, gzip -d -f ${filename} ${filename}.
。
現在我想單元測試程序的功能。 但是我怎么能對這些功能進行單元測試?
有什么建議?
規范的方法是模擬對Popen的調用,並用一些測試數據替換結果。 看看mock
庫文檔 。 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
包含在標准庫中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.