[英]Success unit testing pyinotify?
我正在使用pyinotify將文件從源目錄鏡像到目標目錄。 當我手動執行時,我的代碼似乎正常工作,但我無法獲得准確的單元測試結果。 我認為問題歸結為:
有沒有人成功進行pyinotify單元測試?
在單元測試時,通常應該考慮線程和文件系統之類的事情。 您是否有理由使用實際文件系統,用戶輸入等進行單元測試?
Python使得修補程序非常容易; 例如,你可以用模擬對象(比如Python Mock )替換整個os / sys模塊,這樣你就不需要處理文件系統了。 這也將使您的測試運行得更快。
如果您想使用文件系統進行功能測試,我建議您設置一個具有已知狀態的虛擬機,並在每次運行測試時恢復到該狀態。 您還可以根據需要模擬用戶輸入,文件操作等。
編輯
這是一個如何偽造或模擬“開放”功能的簡單示例。
假設你有一個帶有get_text_upper
函數的模塊my_module
:
def get_text_upper(filename):
return open(filename).read().upper()
你想在不實際接觸文件系統的情況下測試它(最終你將開始只傳遞文件對象而不是文件名以避免這種情況,但現在......)。 您可以模擬open
函數,以便它返回一個StringIO對象:
from cStringIO import StringIO
def fake_open(text):
fp = StringIO()
fp.write(text)
fp.seek(0)
return fp
def test_get_text():
my_module.open = lambda *args, **kwargs : fake_open("foo")
text = my_module.get_text_upper("foo.txt")
assert text == "FOO", text
使用模擬庫只會使這個過程更容易,更靈活。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.