วิธีเขียน Unit Tests ใน C# เพื่อคุณภาพโค้ดที่ดีขึ้น

Withi Kheiyn Unit Tests Ni C Pheux Khunphaph Khod Thi Di Khun



เมื่อพวกเราส่วนใหญ่เริ่มต้นจากการเป็น Developer เราแทบจะไม่คิดหรือทุ่มเทเวลามากนักในการทดสอบหน่วย อย่างไรก็ตาม เมื่อคุณเข้าสู่สภาพแวดล้อมพื้นที่เก็บข้อมูลที่ซับซ้อนและใช้ร่วมกันมากขึ้น การทดสอบโค้ดก่อนที่จะนำไปใช้งานจริงจะมีความสำคัญมากขึ้นเรื่อยๆ

ดังนั้นจึงจำเป็นอย่างยิ่งที่จะต้องได้รับพื้นฐานของการทดสอบหน่วยตั้งแต่เนิ่น ๆ ในขั้นตอนการพัฒนาของคุณ เพื่อหลีกเลี่ยงเส้นโค้งการเรียนรู้เมื่อต้องรับมือกับโค้ดเบสที่กว้างขวาง

ในบทช่วยสอนนี้ เราจะแนะนำคุณเกี่ยวกับเฟรมเวิร์กของการทดสอบหน่วยโดยใช้ C# และไลบรารีการทดสอบ MSTest เราจะสร้างแอปพลิเคชันพื้นฐานที่จะช่วยให้คุณเรียนรู้วิธีสร้างการทดสอบหน่วย วิธีดำเนินการ และวิธีตีความผลลัพธ์จากความล้มเหลวหรือความสำเร็จของการทดสอบ







สภาพแวดล้อมการทดสอบ

ให้เราเริ่มต้นด้วยการพูดคุยถึงโซลูชันการทดสอบและวิธีกำหนดค่าแอปพลิเคชันพื้นฐานของเรา



หากต้องการติดตามและทำซ้ำแอปพลิเคชันในบทช่วยสอนนี้ ตรวจสอบให้แน่ใจว่าคุณมีสิ่งต่อไปนี้:



  1. ติดตั้ง Visual Studio แล้ว
  2. กำหนดค่าเครื่องมือ .NET และ C# บนเครื่องของคุณ

สร้างแอปพลิเคชัน

จากนั้น เปิด Visual Studio และสร้างโซลูชันใหม่ สำหรับบทช่วยสอนนี้ เราจะสร้างแอปพลิเคชันเครื่องคิดเลขพื้นฐาน คุณสามารถให้ใบสมัครด้วยชื่อใดก็ได้ที่คุณต้องการ





จากนั้น สร้างโปรเจ็กต์ใหม่และเลือกประเภทโปรเจ็กต์เป็น MSTest Test Project และตั้งชื่อที่ต้องการ



ตรวจสอบให้แน่ใจว่าได้เลือก 'เพิ่มไปยังโซลูชัน' และเลือกแอปที่สร้างไว้ก่อนหน้านี้

คุณควรมีแอปพลิเคชันหลักและโครงการทดสอบหน่วยตามที่แสดงในตัวสำรวจโซลูชัน

เขียนโค้ดสำหรับแอปพลิเคชันเครื่องคิดเลข

ขั้นตอนต่อไปคือการเขียนโค้ดสำหรับแอปพลิเคชันเครื่องคิดเลขของเรา เราสามารถทำได้ในไฟล์ CalcApp “program.cs”

เนื่องจากเรากำลังมองหาฟังก์ชันพื้นฐาน เราจึงสามารถเพิ่มซอร์สโค้ดได้ดังนี้:

เครื่องคิดเลขชั้นเรียนสาธารณะ
{
สาธารณะ สองเท่า เพิ่ม ( สองเท่า , สองเท่า )
{
กลับ + ;
}

สาธารณะ สองเท่า ลบ ( สองเท่า , สองเท่า )
{
กลับ - - ;
}

สาธารณะ สองเท่า คูณ ( สองเท่า , สองเท่า )
{
กลับ * ;
}

สาธารณะ สองเท่า แบ่ง ( สองเท่า , สองเท่า )
{
ถ้า ( == 0 )
โยน DivideByZeroException ใหม่ ( ) ;
กลับ / ;
}
}

ตามที่คุณสามารถเดาได้ โค้ดก่อนหน้านี้จะสร้างแอปเครื่องคิดเลขที่สามารถใช้งานแอปพลิเคชันทางคณิตศาสตร์พื้นฐานได้

เขียนแบบทดสอบหน่วย

เมื่อเสร็จแล้ว เราก็สามารถเขียนการทดสอบหน่วยสำหรับคลาส 'เครื่องคิดเลข' ได้ ในกรณีนี้ สิ่งที่เราต้องทำคือเขียนการทดสอบลงในไฟล์ “UnitTest” ของโครงการดังนี้:

โดยใช้ระบบ ;

เนมสเปซ CalcApp
{
เครื่องคิดเลขชั้นเรียนสาธารณะ
{
สาธารณะ สองเท่า เพิ่ม ( สองเท่า , สองเท่า )
{
กลับ + ;
}

สาธารณะ สองเท่า ลบ ( สองเท่า , สองเท่า )
{
กลับ - - ;
}

สาธารณะ สองเท่า คูณ ( สองเท่า , สองเท่า )
{
กลับ * ;
}

สาธารณะ สองเท่า แบ่ง ( สองเท่า , สองเท่า )
{
ถ้า ( == 0 )
โยน DivideByZeroException ใหม่ ( ) ;
กลับ / ;
}
}
}

เนมสเปซ CalcTest
{
[ คลาสทดสอบ ]
การทดสอบเครื่องคิดเลขในชั้นเรียนสาธารณะ
{
เครื่องคิดเลขเครื่องคิดเลขส่วนตัว ;

[ ทดสอบเริ่มต้น ]
สาธารณะ เป็นโมฆะ ติดตั้ง ( )
{
เครื่องคิดเลข = เครื่องคิดเลขใหม่ ( ) ;
}

[ วิธีทดสอบ ]
สาธารณะ เป็นโมฆะ Add_TwoPositiveNumbers_ReturnsCorrectSum ( )
{
คือผลลัพธ์ = เครื่องคิดเลข เพิ่ม ( 5 , 5 ) ;
ยืนยัน. มีความเท่าเทียมกัน ( 10 , ผลลัพธ์ ) ;
}

[ วิธีทดสอบ ]
สาธารณะ เป็นโมฆะ Subtract_TwoPositiveNumbers_ReturnsCorrectDifference ( )
{
คือผลลัพธ์ = เครื่องคิดเลข ลบ ( 10 , 5 ) ;
ยืนยัน. มีความเท่าเทียมกัน ( 5 , ผลลัพธ์ ) ;
}

[ วิธีทดสอบ ]
สาธารณะ เป็นโมฆะ Multiply_TwoPositiveNumbers_ReturnsCorrectProduct ( )
{
คือผลลัพธ์ = เครื่องคิดเลข คูณ ( 5 , 5 ) ;
ยืนยัน. มีความเท่าเทียมกัน ( 25 , ผลลัพธ์ ) ;
}

[ วิธีทดสอบ ]
[ ข้อยกเว้นที่คาดหวัง ( ประเภทของ ( DivideByZeroException ) ) ]
สาธารณะ เป็นโมฆะ Divide_DenominatorIsZero_ThrowsDivideByZeroException ( )
{
คือผลลัพธ์ = เครื่องคิดเลข แบ่ง ( 5 , 0 ) ;
}

[ วิธีทดสอบ ]
สาธารณะ เป็นโมฆะ หาร_สองตัวเลขบวก_ผลตอบแทนที่ถูกต้อง ( )
{
คือผลลัพธ์ = เครื่องคิดเลข แบ่ง ( 10 , 5 ) ;
ยืนยัน. มีความเท่าเทียมกัน ( 2 , ผลลัพธ์ ) ;
}
}
}

บทสรุป

นี่คือบทช่วยสอนพื้นฐานที่ครอบคลุมพื้นฐานของการทดสอบหน่วยใน C# โดยใช้เฟรมเวิร์ก MSTest