ขอต้อนรับสู่ฟีเจอร์เรียนรู้การทดสอบ

หลักสูตรนี้เป็นบทแนะนำและการสำรวจการทดสอบสำหรับเว็บ

ในหลักสูตรนี้ คุณจะได้เรียนรู้เกี่ยวกับสิ่งต่างๆ ต่อไปนี้

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

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

ขอบเขตของหลักสูตรประกอบด้วย JavaScript และโมเดลเอกสารบนฟรอนท์เอนด์ ตลอดจนการทดสอบไลบรารีในแบ็กเอนด์ ซึ่งเรียกใช้ในสภาพแวดล้อมอย่างเช่น Node.js ในตัวอย่างนี้ไม่มีพื้นฐานมาจากการทดสอบ แต่คุณจำเป็นต้องมีพื้นฐานใน JavaScript และมีประสบการณ์เกี่ยวกับ Node.js หรือที่คล้ายกัน เหมาะสำหรับนักพัฒนาแอปมือใหม่และ ผู้มีประสบการณ์

เนื่องจากเฟรมเวิร์กและเครื่องมือการทดสอบส่วนใหญ่ใช้ภาษาเดียวกัน การทดสอบ Learn Testing จึงใช้แนวทางทั่วไปในการทดสอบ ในกรณีที่ต้องกำหนดความเฉพาะเจาะจง เราจะใช้ Vitest ซึ่งเป็นเฟรมเวิร์กการทดสอบที่กำลังเพิ่มความนิยม และสาธิตวิธีทดสอบคอมโพเนนต์สำหรับเว็บที่เขียนโดยใช้ React หรือ Lit หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับตัวเลือกนี้ โปรดดูภาคผนวก

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

สิ่งที่คุณจะได้เรียนรู้มีดังนี้

เริ่มต้นการทดสอบ

การทดสอบคืออะไร

นี่เป็นการแนะนำการทดสอบในระดับสูง รวมถึงตัวอย่างการทดสอบใน JavaScript ที่นำไปปฏิบัติได้จริง นอกจากนี้ยังมีการข้อมูลเบื้องต้นเกี่ยวกับขนาดของการทดสอบแต่ละครั้งด้วย

ตำแหน่งที่ทำการทดสอบ

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

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

เครื่องมือรันไทม์ เช่น โหนด มีไว้ใช้กับโค้ดอเนกประสงค์ และโค้ดการทดสอบสำหรับเบราว์เซอร์นั้นอาจเรียกใช้ในสภาพแวดล้อมที่จำลองขึ้น หรือใช้เฟรมเวิร์กที่ออกแบบมาเพื่อการทดสอบเบราว์เซอร์

ประเภทการทดสอบอัตโนมัติ

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

สิ่งที่ควรทดสอบและแนวทางของคุณ

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

การทดสอบคอมโพเนนต์ในทางปฏิบัติ

ในโมดูลที่นำไปใช้ได้จริงนี้ คุณจะได้เรียนรู้วิธีทดสอบคอมโพเนนต์ React ที่ไม่เหมาะเท่าไหร่ ซึ่งจะใช้ Vitest ผ่านตัวอย่าง 3 ตัวอย่างที่แตกต่างกัน ได้แก่ การสกัดกั้นการจราจรของข้อมูลในเครือข่ายที่ดำเนินการด้วย fetch(), การจำลอง Dependency ภายนอก และการใช้ Context ของ React เพื่อระบุบิตโค้ดที่กำหนดเองสำหรับการทดสอบเท่านั้น

การวิเคราะห์แบบคงที่

การใช้เครื่องมือ เช่น TypeScript และ ESLint แม้ว่าจะยังไม่มีแนวทางในการทดสอบ ก็สามารถให้บริการการตรวจสอบแบบอัตโนมัติได้ โมดูลนี้จะพูดถึงเครื่องมือ ทางเลือกเหล่านี้

คำยืนยันและค่าดั้งเดิมอื่นๆ

เครื่องมือสำหรับการเทรด

เรียนรู้เกี่ยวกับพื้นฐานทั่วไปในไลบรารีหรือเฟรมเวิร์กการทดสอบส่วนใหญ่ ซึ่งรวมถึง test() และ assert ซึ่งเป็นหัวใจสำคัญของการทดสอบทั้งหมดที่คุณเขียนใน JavaScript

เร็วๆ นี้

  • หลีกเลี่ยงข้อผิดพลาดที่พบบ่อยในการทดสอบ
  • การทดสอบคู่ผสม
  • ไลบรารีทดสอบและยูทิลิตี
  • ตัดสินใจเกี่ยวกับกรอบการทดสอบ

ส่วนที่เหลือของส่วนนี้จะมีหน้าต่างๆ เพิ่มเติมเกี่ยวกับเฟรมเวิร์กการทดสอบและไลบรารี วิธีใช้งาน และวิธีตัดสินใจว่าจะใช้เครื่องมือใดและใช้เครื่องมือใดอีกบ้าง

พร้อมใช้งานเร็วๆ นี้: การทดสอบที่เกิดจากปัญหา

คุณจะได้เรียนรู้รูปแบบวิธีการรับมือกับความท้าทายต่างๆ ที่พบได้บ่อยในการทดสอบเว็บ

การทดสอบอัตโนมัติในการใช้งานจริงเร็วๆ นี้

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

เร็วๆ นี้: ปรัชญาในการทดสอบ

การทดสอบอาจเป็นความท้าทายทางวิศวกรรม แต่การรู้ว่าจะต้องทดสอบอะไร ใครมีความรับผิดชอบ และแนวทางปฏิบัติแนะนำก็ถือเป็นความท้าทายสำหรับทีมพัฒนาเช่นกัน

พร้อมใช้งานเร็วๆ นี้: การเขียนโค้ดที่ทดสอบได้

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