簡體   English   中英

如何對使用Popen的函數進行單元測試?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM