這裡的乙個好實踐是學習如何使用mock或這樣的測試框架
此外,您應該使用python的unittest框架。在
你在這裡的目標不一定要確保某個東西被創造出來,而是要讓它被呼叫。因此,您需要做的是模擬外部呼叫,以幫助測試方法的正確流。所以在這種情況下,你應該模仿exists和makedirs。然後確保它被呼叫。這是乙個可以接受的單元測試。你可以這樣做:
讓我們假設您的主**位於乙個名為my的模組中_模組.py. 所以你想建立乙個測試檔案,我們稱之為測試.py為了保持簡單,並在單元測試中執行以下操作:from mock import patch
import my_module
import unittest
class mytest(unittest.testcase):
@patch('my_module.exists')
@patch('my_module.makedirs')
def test_create_dir(self, mock_make_dirs, mock_exists):
mock_exists.return_value = true
make_directory('thing_to_create')
mock_make_dirs.assert_called_with('thing_to_create')
所以,這裡發生的是,你告訴模仿者,你想模仿makedirs並存在。您正在使用mock_exists.return_value指定的true返回exists。然後進行實際呼叫,模擬將在該方法呼叫中生效。帶有mock_make_dirs.assert_called_with的最後一行將確保生成dir的方法將被實際呼叫。在
如果您還想測試是否確實建立了某些內容
在這種情況下,您可以做的是,嘗試使用上下文管理器並建立乙個臨時資料夾來進行測試,完成您的工作來測試您的方法和您必須做的任何其他事情,一旦您完成了您的工作,上下文管理器將自行銷毀。在
有關上下文管理器的資訊,請檢視contextlib
python建立目錄函式 python 建立目錄
python對檔案的操作還算是方便的,只需要包含os模組進來,使用相關函式即可實現目錄的建立。主要涉及到三個函式 1 os.path.exists path 判斷乙個目錄是否存在 2 os.makedirs path 多層建立目錄 3 os.mkdir path 建立目錄 demo 直接上 def ...
python如何建立函式 python函式 生成器
1.理論知識 什麼是生成器?生成器的本質就是迭代器。生成器和迭代器也有不同,唯一的不同就是 迭代器都是python給你提供的已經寫好的工具或者通過資料轉化得來的,比如檔案控制代碼,iter 1,2,3 生成器是需要我們自己用python 構建的工具。最大的區別也就如此了。2.生成器的構建方式?在py...
Python 建立目錄
import os os.mrkdir d demo 建立目錄 mrkdir 無法傳建立多級目錄 def mrkdir path 建立遞迴函式 建立多級目錄 if not os.path.exists d demo test python 判斷路徑是否存在 os.mrkdir d demo test...