TestSources是.NET Core和.NET框架的測試文件管理工具
在.NET測試中, TestSources可以易於處理,組織和使用測試文件。它大大簡化了必須設置文件管理工具/代碼,實現驗證並啟用對文件及其內容的適當訪問的通常工作……必須在管理任何類型的文件,消耗時間和重複代碼的文件上手動設置這些工作。那是邪惡的。但沒有更多,這裡是可以提供幫助的測試源。
要開始,請安裝TestSources Nuget軟件包:
dotnet add package TestSources在項目的根部,添加一個名為“ __testsources__ ”的新文件夾。它應該是小寫的,在之前和之後有兩個下劃線“ _ ”。在我們的Tessources文件夾中,創建一個名為“ Atextfile.txt”的文本文件,然後添加“某些文本”或您喜歡的任何文本。
要獲取此測試文件並將其在單元(或集成)測試中使用,請按照下一步:
插入testsources getfile語句TestSource.GetFile("aTextFile.txt");進入您的單元測試。
例子:
/// <summary>
/// Tests if the test file contains some text.
/// </summary>
[ Fact ]
public void TestThatTheTextFileContainsText ( )
{
// arrange
string fileName = "aTextFile.txt" ;
// act
string textInsideTheFile =
TestSource . GetFile ( fileName )
. AsString ( ) ;
// Assert
Assert . NotEmpty ( textInsideTheFile ) ;
} TestSource.GetFile()語句將獲得帶有指定名稱的文件,該名稱位於“ __testsources__ ”文件夾上。接下來,Midached AsString()語句將獲取其內容,並用UTF-8編碼以字符串形式使用它們。 (也可以配置)
您可以在“ __testsources__ ”文件夾中創建文件夾,除了操作系統設置的文件夾,沒有任何限制。
文件也是如此,您可以在任何級別上添加它們,並利用您的想像力來組織測試文件,直到它使您感到滿意。
鑑於它存在並且您已正確鍵入testSources root Directory, TestSource.GetFile(filename, true)將獲取位於testsources root目錄下的任何文件。
另外,您可以獲取具有類似語句的文件夾的引用:
TestSource.GetFolder(foldername)將在TestSources root Directory的根目錄中找到名為foldername的文件夾,而TestSource.GetFile(filename, true)將在其任何子文件夾中找到命名文件夾。
文件滿足ITestSourceFile接口,這使我們能夠檢查其父,獲取文件名,全名,包括路徑,然後進行一些擴展,例如:
OpenRead() - 打開一個用於讀取文件流的文件。AsString() - 讀取當前文件並將其內容返回,作為字符串,帶有默認的UTF8編碼,可以覆蓋。AsByteArray() - 讀取當前文件並返回其內容的字節數組。AsFileStream() - 讀取當前文件並返回文件流。AsMemoryStream() - 讀取當前文件,並將其內容返回為存儲器。AsStream() - 讀取當前文件並將其內容返回為流。GetHash() - 給定一個加密哈希算法,返回文件的哈希。AsType<T>() - 將文件的內容返回作為具體類型的內容,應將其JSON內容化。AsJson() - 讀取當前文件,並將其內容返回,作為JSON字符串,帶有默認的UTF8編碼,可以覆蓋。 這些文件夾或目錄滿足了ITestSourceDir接口,這使我們能夠檢查其父,獲取文件夾名稱,全名,包括路徑,然後進行一些擴展,例如:
GetFiles() - 返回此文件夾上包含的文件列表。當然,可以滿足iTestSourceFile界面。GetFolders() - 返回此文件夾上包含的文件夾的列表。當然,可以滿足iTestSourcedir接口。 (如果沒有文件或文件夾,則集合為空) 他們只是工作,在那裡沒有特別的設置。
該項目採用了貢獻者盟約定義的行為準則,以闡明我們社區的預期行為。有關更多信息,請參閱《瑞士生活OSS行為準則》。