[英]Best practices C# creating file in test
如何以及在哪里可以創建文件(在測試中),標准Windows 7/8平台上的每個人都可以使用和創建該文件?
因為當我嘗試使用時:
Directory.CreateDirectory(TEST_FILE_PATH);
我有一個UnauthorizedAccessException,因此可以更改我在計算機上的權限,但不能更改其他貢獻者的權限。
編輯:
好吧,您需要一些詳細信息。 我有一個接口,允許我收聽視頻流。 但是在測試中,我需要使用一個文件,將其讀取並存儲正在讀取的內容。 因此,我想測試文件中的所有數據是否正確存儲。
范例:
ICarStorage carStorage = new CarFileStorage(FILE_PATH);
List<Car> cars = carStorage.Load();
// array which contains cars wrote in file
int expected = CARS.Length;
int actual = cars.Count;
Assert.AreEqual(expected, actual);
我仍然不確定最適合您的需求,但是我會這樣說:
UnauthorizedAccessException
最有可能是由在不同上下文中運行測試引起的,簡而言之,您可能使用的路徑並非所有運行測試的用戶都可以訪問。
假設您只有一個文件,不想花太多精力進行框架構建,那么您可以使用Path.Combine(Path.GetTempPath(), Path.GetTempFileName())
來創建一個文件名。
我在大型應用程序中正在做什么:我永遠不會讓任何人直接訪問文件系統。 取而代之的是,我有一組通過依賴項注入使用的工具,可以完成所有文件訪問任務。 結果,我將永遠不必在測試中檢查文件,除了文件系統工具的測試之外,我可以將其全部模擬掉。
使用臨時文件夾。 例如,使用Path.GetTempFileName()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.