การทำความเข้าใจการตั้งค่าการทดสอบใน NUnit
เมื่อทำงานกับการทดสอบหน่วยใน Visual Studio โดยใช้ NUnit นักพัฒนามักจะอยู่ในสถานการณ์ที่ต้องการทราบชื่อการทดสอบที่กำลังดำเนินการอยู่ในขณะนี้ สิ่งนี้ดูเหมือนจะเป็นคำถามที่ตรงไปตรงมา แต่สิ่งสำคัญคือการเข้าใจหลักการพื้นฐานของการตั้งค่าและการดำเนินการทดสอบเพื่อกำหนดแนวทางที่ดีที่สุด
แรงดึงดูด: การค้นหาชื่อการทดสอบปัจจุบัน
คุณอาจสงสัยว่ามีวิธีการใดบ้างในการค้นหาชื่อการทดสอบในระหว่างวิธี setup
แนวคิดเบื้องหลังการตั้งค่าการทดสอบคือการรับประกันว่าสิ่งที่ถูกเริ่มต้นนั้นสามารถใช้ได้กับการทดสอบ ทุก ครั้งเพื่อให้มีพื้นฐานที่ชัดเจนสำหรับแต่ละการทดสอบ ดังนั้นการทราบชื่อการทดสอบเฉพาะอาจรู้สึกเหมือนเป็นสิ่งไม่จำเป็น—และโดยแท้จริงแล้วมันแทบจะเป็นเช่นนั้น!
ข้อเสียของการรับชื่อการทดสอบใน Setup
-
วัตถุประสงค์ที่ชัดเจน:
- บทบาทหลักของวิธี
setup
คือการดำเนินการโค้ดที่ตั้งค่าเวทีสำหรับการทดสอบทั้งหมด หากคุณเริ่มปรับการตั้งค่าให้เข้ากับการทดสอบเฉพาะ คุณอาจเปิดโอกาสให้การตั้งค่านั้นสูญเสียวัตถุประสงค์ไปได้
- บทบาทหลักของวิธี
-
ความซับซ้อนที่เพิ่มขึ้น:
- ความพยายามในการโหลดการกำหนดค่าที่แตกต่างกันตามชื่อการทดสอบสามารถทำให้โค้ดของคุณซับซ้อนได้อย่างรวดเร็ว ทำให้ยากต่อการบำรุงรักษาและเข้าใจ
-
รูปแบบทางเลือกที่มีอยู่:
- มีวิธีที่มีประสิทธิภาพมากขึ้นในการส่งพารามิเตอร์ที่จำเป็นไปยังการทดสอบของคุณโดยไม่ต้องพึ่งพาชื่อการทดสอบ
คำแนะนำสำหรับการเริ่มต้นการทดสอบ
ยึดตามหลักการของการตั้งค่า
แทนที่จะพยายามกำหนดว่ากำลังดำเนินการทดสอบใดอยู่ ให้พิจารณาการนำทางเลือกเหล่านี้ไปใช้:
-
ใช้การทดสอบที่มีพารามิเตอร์: หากการทดสอบของคุณต้องการข้อมูลเริ่มต้นที่แตกต่างกัน ให้พิจารณาการกำหนดการทดสอบใหม่โดยใช้พารามิเตอร์ วิธีนี้จะทำให้ข้อมูลนำเข้าการทดสอบชัดเจนและจัดการได้ที่ระดับการทดสอบแทนที่จะเป็นการตั้งค่า
-
แยกลอจิกการเริ่มต้นออก: หากลอจิกการตั้งค่าของคุณต้องการชุดข้อมูลที่แตกต่างกันขึ้นอยู่กับการทดสอบเฉพาะ ให้ดำเนินการสร้างวิธีแยกที่สามารถรับพารามิเตอร์เพื่อกำหนดค่าหมายเหตุได้ตามต้องการ
แนวทางที่ถูกต้องหากจำเป็นจริงๆ
หากหลังจากพิจารณาข้างต้นแล้วคุณยังรู้สึกว่าจำเป็นต้องทราบชื่อการทดสอบปัจจุบัน ต่อไปนี้คือวิธีการที่เป็นไปได้:
- กำหนดวิธีในแต่ละการทดสอบ:
- สร้างวิธีการเริ่มต้นเฉพาะในแต่ละการทดสอบที่เรียกใช้ฟังก์ชันการตั้งค่าที่เกี่ยวข้องโดยชัดแจ้งพร้อมพารามิเตอร์ที่จำเป็น
ตัวอย่าง:
[Test]
public void TestMethod1()
{
Setup("TestMethod1");
// โค้ดการทดสอบที่นี่
}
private void Setup(string testName)
{
// เริ่มต้นตามชื่อการทดสอบ
}
ด้วยการปฏิบัติตามคำแนะนำนี้ คุณจะสามารถรักษาการตั้งค่าการทดสอบให้สะอาด กระชับ และง่ายต่อการบำรุงรักษาในขณะที่ปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดในการทดสอบหน่วย
สรุป
โดยสรุป แม้ว่าจะดูเหมือนมีประโยชน์ในการทราบชื่อการทดสอบที่กำลังดำเนินการจากวิธีการ setup
ใน NUnit แต่โดยทั่วไปแล้วจะถูกขัดเกลาช่วยหลีกเลี่ยง ขอให้ยอมรับในหลักการของการเก็บอิสระในการทดสอบและการจัดการพารามิเตอร์ที่ชัดเจนซึ่งนำไปสู่โค้ดที่ดีกว่าและบำรุงรักษาได้มากขึ้น ใช้วิธีการเริ่มต้นแยกเมื่อจำเป็นและรักษาโฟกัสที่ความชัดเจนและวัตถุประสงค์ในการออกแบบการทดสอบของคุณ