ในฉบับนี้ หัวข้อที่เราจะพูดถึงคือการทดสอบ JavaScript เพื่อตรวจสอบว่าสถานะและโหมดการทำงานของส่วนประกอบต่างๆ เป็นไปตามที่คาดไว้หรือไม่ นอกจากนี้ เรายังจะแนะนำวิธีการทดสอบที่สามารถเขียนกรณีทดสอบได้อย่างง่ายดาย แน่นอนว่าการทดสอบที่กล่าวถึงในที่นี้ใช้วิธีการทดสอบอัตโนมัติ ซึ่งเป็นส่วนสำคัญของการประกันคุณภาพซอฟต์แวร์ (QA) ในส่วนของ Smart Queue ที่นำมาใช้ในบทความชุดนี้ เป้าหมายการทดสอบของเราประกอบด้วย:
สำหรับเป้าหมายแรก เพียงตรวจสอบว่าคุณสมบัติของออบเจ็กต์หลังการสร้างเป็นไปตามที่คาดไว้ เราได้กล่าวถึง "การปฏิบัติตามความคาดหวัง" หลายครั้ง และ Assert ได้รับการออกแบบมาเพื่อสิ่งนี้ พูดง่ายๆ การยืนยันคือเพื่อให้แน่ใจว่านิพจน์ที่ทดสอบแล้วให้ผลลัพธ์เป็น "จริง" ไม่เช่นนั้น ให้แจ้งให้ผู้ทดสอบทราบด้วยวิธีใดวิธีหนึ่งและช่วยเขาค้นหากรณีทดสอบที่การยืนยันล้มเหลว
เป้าหมายที่สองนั้นซับซ้อนกว่าเล็กน้อย เนื่องจากเราซ่อนคิวที่เรียงลำดับ (_เรียงลำดับ) ไว้ในการปิดระหว่างการเขียนโค้ดส่วนประกอบและการใช้งาน จึงไม่สามารถเข้าถึงได้จากภายนอก มีสองวิธีที่ต้องพิจารณา: (1) ปรับโครงสร้างโค้ดเพื่อเพิ่มความสามารถในการทดสอบของโค้ด นอกจากนี้ยังมีวิธีปรับโครงสร้างใหม่สองวิธี: (a) ตั้งค่าสวิตช์ดีบักและเปิดเผย _sorted ไปด้านนอกเมื่อเปิดใช้งาน (b) เพิ่มไฟล์อิสระ ประกบโค้ดในลักษณะบิลด์เพื่อสร้างเวอร์ชันทดสอบในที่สุด (2) ทดสอบผลลัพธ์ของพฤติกรรมมากกว่ากระบวนการ โดยพื้นฐานแล้ววิธีการแบบเดิมจะเจาะลึกเข้าไปในสถานะรันไทม์ของส่วนประกอบ ในขณะที่วิธีนี้จะตรวจสอบเฉพาะผลลัพธ์การทำงานของส่วนประกอบเท่านั้น ฉบับนี้ใช้วิธีทดสอบแบบหลัง และเหลือวิธีทดสอบแบบแรกไว้ให้ผู้อ่านที่สนใจได้ฝึกฝน :)
ควรสังเกตว่าโดยส่วนตัวแล้วฉันไม่เห็นด้วยกับวิธีแรก ก. เพราะเหตุใด? ก่อนอื่นให้ฉันพูดถึงแนวคิดการออกแบบของคิวงานนี้:
ที่มา: Alipay UED