TestSources เป็นเครื่องมือการจัดการไฟล์ทดสอบสำหรับ . NET Core และ . NET Framework
TestSources ทำให้ง่ายต่อการจัดการจัดระเบียบและใช้ไฟล์ทดสอบในการทดสอบ. NET มันง่ายขึ้นอย่างมากการทำงานตามปกติของการตั้งค่าเครื่องมือ/รหัสการจัดการไฟล์ใช้การตรวจสอบและเปิดใช้งานการเข้าถึงไฟล์และเนื้อหาที่เหมาะสม ... สิ่งเหล่านั้นจะต้องตั้งค่าด้วยตนเองในทุกโครงการทดสอบที่จัดการไฟล์ทุกประเภทใช้เวลาและรหัสซ้ำ นั่นคือความชั่วร้าย แต่ไม่มากไปกว่านี้นี่คือการทดสอบที่จะช่วย
ในการเริ่มต้นให้ติดตั้งแพ็คเกจ TestSources NUGET:
dotnet add package TestSources ในรากของโครงการเพิ่มโฟลเดอร์ใหม่ชื่อ " __testsources__ " มันควรจะอยู่ในตัวพิมพ์เล็กโดยมีอักขระขีดล่างสองตัว " _ " ก่อนและหลัง ภายในโฟลเดอร์ Tessources ของเราสร้างไฟล์ข้อความชื่อ "atextfile.txt" และภายในเพิ่ม "บางข้อความ" หรือข้อความใด ๆ ที่คุณชอบ
หากต้องการรับไฟล์ทดสอบนี้และใช้ภายในการทดสอบหน่วย (หรือการรวม) ของคุณให้ทำตามขั้นตอนต่อไป:
แทรกคำสั่ง GetFile TestSources 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__ " ถัดไปคำสั่ง metachained AsString() จะได้รับเนื้อหาและส่งมอบให้พร้อมที่จะใช้ในรูปแบบสตริงด้วยการเข้ารหัส UTF-8 (สามารถกำหนดค่าได้ด้วย)
คุณสามารถสร้างโฟลเดอร์ภายในโฟลเดอร์ " __testsources__ " โดยไม่มีขีด จำกัด ใด ๆ ยกเว้นที่ตั้งค่าโดยระบบปฏิบัติการของคุณ
เช่นเดียวกันกับไฟล์คุณสามารถเพิ่มไฟล์เหล่านั้นได้ทุกระดับและใช้จินตนาการของคุณเพื่อจัดระเบียบไฟล์ทดสอบของคุณจนกว่ามันจะทำให้คุณพอใจ
คำสั่ง TestSource.GetFile(filename, true) จะได้รับไฟล์ใด ๆ ที่อยู่ภายใต้ไดเรกทอรีรากทดสอบเนื่องจากมีอยู่และคุณได้พิมพ์อย่างถูกต้อง
นอกจากนี้คุณสามารถรับการอ้างอิงไปยังโฟลเดอร์ที่มีคำสั่งที่คล้ายกัน:
TestSource.GetFolder(foldername) จะพบโฟลเดอร์ชื่อ foldername ในรูทของไดเรกทอรีรูท TestSources ในขณะที่ TestSource.GetFile(filename, true) จะพบโฟลเดอร์ที่มีชื่อในโฟลเดอร์ย่อยใด ๆ
ไฟล์เติมเต็มอินเทอร์เฟซ ITestSourceFile และสิ่งนี้ช่วยให้เราสามารถตรวจสอบพาเรนต์ได้รับชื่อไฟล์ชื่อเต็มรวมถึงเส้นทางและส่วนขยายบางอย่างเช่น::
OpenRead() - เปิดไฟล์สำหรับการอ่านการส่งคืนสตรีมไฟล์AsString() - อ่านไฟล์ปัจจุบันและส่งคืนเนื้อหาเป็นสตริงที่มีการเข้ารหัส UTF8 เริ่มต้นซึ่งสามารถแทนที่ได้AsByteArray() - อ่านไฟล์ปัจจุบันและส่งคืนอาร์เรย์ไบต์ของเนื้อหาAsFileStream() - อ่านไฟล์ปัจจุบันและส่งคืน filestream ไปยังAsMemoryStream() - อ่านไฟล์ปัจจุบันและส่งคืนเนื้อหาเป็นหน่วยความจำAsStream() - อ่านไฟล์ปัจจุบันและส่งคืนเนื้อหาเป็นสตรีมGetHash() - ส่งคืนแฮชของไฟล์เนื่องจากอัลกอริทึมแฮชเข้ารหัสAsType<T>() - ส่งคืนเนื้อหาของไฟล์เป็นประเภทคอนกรีตทำให้เนื้อหา JSON ของมันลดลงAsJson() - อ่านไฟล์ปัจจุบันและส่งคืนเนื้อหาเป็นสตริง JSON ด้วยการเข้ารหัส UTF8 เริ่มต้นซึ่งสามารถแทนที่ได้ โฟลเดอร์หรือไดเรกทอรีเติมเต็มอินเทอร์เฟซ ITestSourceDir และสิ่งนี้ช่วยให้เราสามารถตรวจสอบผู้ปกครองได้รับชื่อโฟลเดอร์ชื่อเต็มรวมถึงเส้นทางและจากนั้นส่วนขยายบางอย่างเช่น:
GetFiles() - ส่งคืนรายการไฟล์ที่มีอยู่ในโฟลเดอร์นี้ แน่นอนว่าการเติมเต็มอินเทอร์เฟซ itestsourcefileGetFolders() - ส่งคืนรายการโฟลเดอร์ที่มีอยู่ในโฟลเดอร์นี้ แน่นอนว่าการเติมเต็มอินเทอร์เฟซ itestsourcedir (หากไม่มีไฟล์หรือโฟลเดอร์คอลเลกชันจะว่างเปล่า) พวกเขาใช้งานได้ไม่มีอะไรเป็นพิเศษในการตั้งค่าที่นั่น
โครงการนี้ได้นำจรรยาบรรณที่กำหนดโดยพันธสัญญาผู้สนับสนุนเพื่อชี้แจงพฤติกรรมที่คาดหวังในชุมชนของเรา สำหรับข้อมูลเพิ่มเติมดูจรรยาบรรณ OSS Life OSS