จะเขียน Unit Test ใน Golang ได้อย่างไร?

Ca Kheiyn Unit Test Ni Golang Di Xyangri



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

การทดสอบหน่วยคืออะไร?

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

แพ็คเกจการทดสอบ

ในโกลัง การทดสอบหน่วย ดำเนินการโดยใช้แพ็คเกจที่เรียกว่า การทดสอบ . แพ็คเกจมีฟังก์ชั่นต่าง ๆ ที่ช่วยให้เราสามารถทดสอบโค้ดของเราได้ สามารถทดสอบรหัส Go ได้โดยอัตโนมัติด้วยความช่วยเหลือของชุดทดสอบ







ตัวอย่างโปรแกรมที่จะทดสอบ

เราต้องการรหัสสำหรับการทดสอบของเราเพื่อวิเคราะห์ก่อนที่เราจะเขียนได้ การทดสอบหน่วย . เราจะสร้างโปรแกรมขนาดเล็กที่บวกสองจำนวน



แพคเกจหลัก

นำเข้า (
'เอฟเอ็มที'
)
ฟังก์ชั่นเพิ่ม ( นานาชาติ , นานาชาติ ) นานาชาติ {
กลับ +
}

ฟังก์ชั่นหลัก ( ) {
เอฟเอ็มที พิมพ์ ( เพิ่ม ( 2 , 3 ) )
}

รหัสข้างต้นกำหนด เพิ่ม() ฟังก์ชันบวกเลขสองตัว และ เป็นอินพุตและเอาต์พุตผลลัพธ์เป็นจำนวนเต็ม การบวกเลข 2 และ 3 เป็นสิ่งที่ฟังก์ชันหลักทำก่อนที่จะพิมพ์ผลลัพธ์







แบบแผนของการทดสอบหน่วยการเขียนใน Go

โครงการ Go ทุกโครงการควรมีไฟล์ทดสอบแยกต่างหากซึ่งมีการทดสอบทั้งหมดสำหรับโครงการนั้น ไฟล์ควรมีชื่อเดียวกับไฟล์ที่กำลังทดสอบและควรมี _test.go เพิ่มต่อท้ายชื่อไฟล์ เช่น ถ้าเราต้องการทดสอบไฟล์ชื่อ เครื่องคิดเลข.go เราควรตั้งชื่อไฟล์ทดสอบของเรา เครื่องคิดเลข_test.go .

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



ในการเขียน การทดสอบหน่วย ใน Go เราจำเป็นต้องใช้ การทดสอบ บรรจุุภัณฑ์. เราสามารถเริ่มแต่ละฟังก์ชันการทดสอบด้วยคำว่า ทดสอบ แล้วเพิ่มคำอธิบายสิ่งที่เราต้องการทดสอบ ตัวอย่างเช่น, การทดสอบเพิ่มเติม หรือ ทดสอบการลบ . จากนั้นเราสามารถเขียนโค้ดทดสอบเพื่อตรวจสอบว่าฟังก์ชันที่เรากำลังทดสอบส่งคืนผลลัพธ์ที่คาดหวังหรือไม่

ใน Go แต่ละฟังก์ชันการทดสอบควรเริ่มต้นด้วยคำสั่ง t := การทดสอบ T{} คำสั่งนี้สร้างใหม่ การทดสอบ วัตถุที่เราสามารถใช้เพื่อตรวจสอบว่าการทดสอบผ่านหรือไม่ผ่าน จากนั้นเราสามารถใช้ t.Errorf() ฟังก์ชันพิมพ์ข้อความแสดงข้อผิดพลาดหากการทดสอบล้มเหลว

จะเขียนรหัสการทดสอบได้อย่างไร

เมื่อพูดถึงการเขียนการทดสอบหน่วยใน Go สิ่งสำคัญคือต้องเริ่มต้นด้วยการระบุแพ็คเกจที่คุณต้องการทดสอบ หลังจากนำเข้าแพ็คเกจการทดสอบแล้ว คุณสามารถเข้าถึงประเภทและวิธีการต่างๆ ที่แพ็คเกจส่งออก รวมถึง การทดสอบ.T พิมพ์. ตรรกะการทดสอบจะถูกเขียนในฟังก์ชันที่ขึ้นต้นด้วยคีย์เวิร์ด 'ทดสอบ' ตามด้วยชื่อที่สื่อความหมาย เช่น ทดสอบเพิ่ม() . ภายในฟังก์ชันนี้ คุณสามารถรวมรหัสสำหรับการทดสอบและการยืนยันใดๆ ที่จำเป็นในการตรวจสอบพฤติกรรมที่คาดไว้

สรุปแล้ว ลักษณะของการทดสอบใน Go มีดังนี้:

  • พารามิเตอร์เดียวที่จำเป็นคือ t *การทดสอบ.T
  • ฟังก์ชันการทดสอบจะขึ้นต้นด้วยคำว่า Test แล้วตามด้วยคำหรือวลีที่ขึ้นต้นด้วยอักษรตัวใหญ่
  • เพื่อระบุถึงความล้มเหลว ฟังก์ชันการทดสอบควรเรียกใช้อย่างใดอย่างหนึ่ง t.Errorf หรือ t.Fail, และเพื่อให้ข้อมูลการดีบักเพิ่มเติมโดยไม่ทำให้เกิดความล้มเหลว สามารถใช้ t.Log ได้
  • ในการส่งข้อมูลการดีบักที่ไม่ล้มเหลว ให้ใช้ t.Log
  • การทดสอบจะถูกเก็บไว้ในไฟล์ที่มีชื่อ foo_test.go , ตัวอย่างเช่น, math_test.go .

ปิดไฟล์หลังจากบันทึก

แพคเกจหลัก

นำเข้า (
'การทดสอบ'
)

ฟังก์ชันทดสอบเพิ่ม ( ที * การทดสอบ ) {
ผลลัพธ์ := เพิ่ม ( 2 , 3 )
ถ้า ผลลัพธ์ != 5 {
ที. ข้อผิดพลาด ( 'เพิ่ม(2, 3) = %d; ต้องการ 5' , ผลลัพธ์ )
}
}

เดอะ เพิ่ม() ฟังก์ชันถูกทดสอบโดย ทดสอบเพิ่ม() ฟังก์ชันซึ่งกำหนดไว้ในการทดสอบนี้ ใช้หมายเลข 2 และ 3 เพื่อเรียก Add จากนั้นจะยืนยันว่าผลลัพธ์คือ 5 ข้อความแสดงข้อผิดพลาดจะถูกพิมพ์หากผลลัพธ์น้อยกว่า 5 เมื่อ t.Errorf() ถูกเรียกใช้

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

< แข็งแกร่ง > ไปทดสอบ < ทดสอบ - ไฟล์ - ชื่อ > _ทดสอบ. ไป แข็งแกร่ง >

ผลลัพธ์ของการทดสอบหน่วย

ผลลัพธ์จะแสดงให้คุณเห็นฟังก์ชันการทดสอบที่ผ่าน ล้มเหลว หรือข้ามไป

ผ่านหรือตกลง แสดงว่ารหัสทำงานตามที่ตั้งใจไว้ คุณจะได้รับ ล้มเหลว หากการทดสอบล้มเหลว

เดอะ _test.go ส่วนต่อท้ายเป็นคำสั่งเดียวที่คำสั่งย่อย go test ตรวจสอบในไฟล์ หลังจากนั้น ให้ทดสอบค้นหาไฟล์เหล่านั้นเพื่อหาฟังก์ชันพิเศษใดๆ เช่น func ทดสอบ Xxx และอื่น ๆ อีกมากมาย ไปทดสอบการสร้างและเรียกใช้ฟังก์ชันเหล่านี้อย่างถูกต้อง ดำเนินการ รวบรวม และรายงานผลลัพธ์ และสุดท้ายล้างข้อมูลทุกอย่างในแพ็คเกจหลักชั่วคราว

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

บทสรุป

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