我有一個函數,如果文件的大小太大(> 1MB)會引發異常。我想在不使用真實圖像的情況下測試此功能。我知道可以用mock_open來模擬文件對象,但是我怎麼給這個假文件一個大小呢?如何模擬一個設置大小的文件對象?
這裏是我想測試功能:
def _check_image_size(img_path):
megabyte = 1048576
if os.path.getsize(img_path) > megabyte:
raise ValueError("Image must be less than or equal to 1MB in size.")
所以只是重申以不同的方式的問題是:如何在我測試此功能,無需在尺寸上比使用1MB一個真正的文件更大?
P.S.我是否應該爲這個功能寫一個測試?我是一個沒有多少經驗的新開發人員。我是否想通過測試來過度?
近似重複,但至少適用:http://stackoverflow.com/questions/19672138/how-do-i-mock-the-filesystem-in-python-unit-tests。這涵蓋了我的答案中的大部分內容(以及我認爲增加的內容)。 – chepner