ฉันเพิ่งมากับการประชุมต่อไปนี้สำหรับการตั้งชื่อการทดสอบของฉันชั้นเรียนของพวกเขาและมีโครงการเพื่อเพิ่ม descriptivenes ของพวกเขา:
ให้บอกว่าฉันกำลังทดสอบSettingsชั้นเรียนในโครงการในMyApp.Serializationnamespace
ก่อนอื่นฉันจะสร้างโครงการทดสอบด้วยMyApp.Serialization.Testsเนมสเปซ
ภายในโครงการนี้และแน่นอนเนมสเปซฉันจะสร้างคลาสที่เรียกว่าIfSettings(บันทึกเป็นIfSettings.cs )
ให้บอกว่าฉันกำลังทดสอบSaveStrings()วิธี -> CanSaveStrings()ฉันจะตั้งชื่อการทดสอบ
เมื่อฉันรันการทดสอบนี้มันจะแสดงหัวข้อดังต่อไปนี้:
MyApp.Serialization.Tests.IfSettings.CanSaveStrings
ฉันคิดว่าสิ่งนี้บอกฉันได้ดีมากว่ามันคืออะไรการทดสอบ
แน่นอนว่ามันมีประโยชน์ว่าในภาษาอังกฤษคำนาม "การทดสอบ" เหมือนกับคำกริยา "การทดสอบ"
ความคิดสร้างสรรค์ของคุณไม่มีข้อ จำกัด ในการตั้งชื่อการทดสอบเพื่อให้เราได้รับส่วนหัวที่สมบูรณ์สำหรับพวกเขา 
โดยปกติชื่อการทดสอบจะต้องเริ่มต้นด้วยคำกริยา
ตัวอย่างรวมถึง: 
- ตรวจจับ (เช่นDetectsInvalidUserInput)
- พ่น (เช่นThrowsOnNotFound)
- จะ (เช่นWillCloseTheDatabaseAfterTheTransaction)
เป็นต้น
ตัวเลือกอื่นคือการใช้ "ว่า" แทนที่จะเป็น "ถ้า" 
อันหลังช่วยให้ฉันกดแป้นได้แม้ว่าและอธิบายเพิ่มเติมสิ่งที่ฉันกำลังทำอยู่เพราะฉันไม่รู้ว่าพฤติกรรมที่ทดสอบนั้นมีอยู่ แต่กำลังทดสอบว่ามันเป็นเช่นไร
[ แก้ไข ]
หลังจากใช้แบบแผนการตั้งชื่อข้างต้นนานขึ้นเล็กน้อยฉันพบว่าคำนำหน้าIfอาจสับสนเมื่อทำงานกับส่วนต่อประสาน มันเกิดขึ้นอย่างนั้นคลาสการทดสอบIfSerializer.csดูคล้ายกับอินเตอร์เฟสISerializer.csใน "Open Files Tab" สิ่งนี้จะทำให้เกิดความรำคาญเมื่อสลับไปมาระหว่างการทดสอบคลาสที่ทดสอบและอินเทอร์เฟซ ดังนั้นตอนนี้ฉันจะเลือกว่ามากกว่าถ้าเป็นคำนำหน้า
นอกจากนี้ตอนนี้ฉันใช้ - เฉพาะสำหรับวิธีการในชั้นเรียนทดสอบของฉันเพราะมันไม่ถือว่าเป็นแนวปฏิบัติที่ดีที่สุดที่อื่น - "_" เพื่อแยกคำในชื่อวิธีการทดสอบของฉันเช่นเดียวกับใน:
[Test] public void detects_invalid_User_Input()
ฉันพบว่ามันอ่านง่ายกว่า
[ สิ้นสุดการแก้ไข ]
ฉันหวังว่าสิ่งนี้จะวางแนวความคิดเพิ่มเติมเนื่องจากฉันคิดว่าการตั้งชื่อการทดสอบมีความสำคัญอย่างยิ่งเนื่องจากจะช่วยให้คุณประหยัดเวลาได้มากที่จะใช้เวลาพยายามทำความเข้าใจว่าการทดสอบกำลังทำอะไร (เช่นหลังจากกลับมาทำโครงการอีกครั้ง .