ข้อผิดพลาดทั่วไปที่จะหลีกเลี่ยงเมื่อทดสอบแอปพลิเคชัน Laravel รวมถึงสิ่งต่อไปนี้:
ละเลยการทดสอบอัตโนมัติ
นักพัฒนาหลายคนทำผิดพลาดที่จะไม่ใช้ประโยชน์จากเครื่องมือทดสอบอัตโนมัติที่ทรงพลังของ Laravel เช่น phpunit สำหรับการทดสอบหน่วยและ Laravel Dusk สำหรับการทดสอบเบราว์เซอร์ การพึ่งพาการทดสอบด้วยตนเองเพียงอย่างเดียวนั้นไม่มีประสิทธิภาพและความเสี่ยงที่ขาดหายไปโดยเฉพาะอย่างยิ่งเมื่อแอปพลิเคชันเพิ่มขึ้นในความซับซ้อน การทดสอบอัตโนมัติช่วยให้มั่นใจได้ว่าการตอบรับที่รวดเร็วขึ้นครอบคลุมการทดสอบที่สูงขึ้นและลดข้อผิดพลาดของมนุษย์ในระหว่างการทดสอบขั้นตอน
ไม่สนใจการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ (TDD)
การกำกับดูแลบ่อยครั้งคือการข้ามการพัฒนาที่ขับเคลื่อนด้วยการทดสอบซึ่งการทดสอบจะถูกเขียนก่อนรหัสแอปพลิเคชันเอง หากไม่มี TDD รหัสอาจกลายเป็นโมดูลน้อยกว่ายากต่อการรักษาและไม่สามารถคาดการณ์ได้ในบางส่วนซึ่งนำไปสู่การสะสมหนี้ทางเทคนิค TDD สนับสนุนการเขียนรหัสที่สะอาดและทดสอบได้และช่วยจับข้อบกพร่องก่อน
ครอบคลุมการทดสอบไม่เพียงพอ
การโฟกัสการทดสอบเฉพาะในคุณสมบัติบางอย่างหรือกรณีขอบที่ถูกทอดทิ้งนำไปสู่การครอบคลุมการทดสอบที่ไม่เพียงพอ ซึ่งหมายความว่าแอปพลิเคชันหลายส่วนยังคงไม่ผ่านการทดสอบซึ่งอาจส่งผลให้ข้อบกพร่องถูกตรวจพบ การทดสอบที่ครอบคลุมควรครอบคลุมเส้นทางที่สำคัญทั้งหมดและรวมถึงกรณีขอบเพื่อให้แน่ใจว่ามีความแข็งแกร่ง
ไม่อัปเดตการทดสอบ
แอพพลิเคชั่น Laravel มักจะได้รับการเพิ่มเติมคุณสมบัติและ refactoring การไม่เก็บอัพเดทการทดสอบเพื่อสะท้อนการเปลี่ยนแปลงเหล่านี้นำไปสู่ชุดทดสอบที่ล้าสมัยซึ่งไม่ได้ตรวจสอบพฤติกรรมที่ถูกต้องของแอปพลิเคชันอีกต่อไป ควรทำการทดสอบควบคู่ไปกับ codebase เพื่อหลีกเลี่ยงผลบวกหรือเชิงลบที่ผิดพลาด
การจัดการสภาพแวดล้อมการทดสอบที่ไม่ดี
การมีสภาพแวดล้อมการทดสอบที่แตกต่างอย่างมีนัยสำคัญจากสภาพแวดล้อมการผลิตนำไปสู่ผลการทดสอบที่ไม่น่าเชื่อถือ ความแตกต่างของการกำหนดค่าอาจทำให้การทดสอบผ่านไปในพื้นที่ แต่ล้มเหลวในการผลิตหรือในทางกลับกัน สภาพแวดล้อมการทดสอบควรสะท้อนการตั้งค่าการผลิตอย่างใกล้ชิดเพื่อผลลัพธ์ที่แท้จริงและเชื่อถือได้
การใช้พื้นที่มากเกินไปและการโทรแบบคงที่
การโทรโดยตรง laravel facades แบบคงที่ในตรรกะทางธุรกิจสามารถทำให้การทดสอบซับซ้อนขึ้นเนื่องจากการโทรเหล่านี้ซ่อนการพึ่งพาทำให้การทดสอบหน่วยการทดสอบยากขึ้นเพื่อแยก การฉีดพึ่งพาอาศัยกันเป็นวิธีที่ต้องการเนื่องจากส่งเสริมการเป็นโมดูลที่ดีขึ้นและล้อเลียนง่ายขึ้นสำหรับการทดสอบ
การผสมผสานการตรวจสอบความถูกต้องและตรรกะการอนุญาตในคอนโทรลเลอร์
การตรวจสอบความถูกต้องของการตรวจสอบความถูกต้องและการอนุญาตโดยตรงในตัวควบคุมนำไปสู่ตัวควบคุมป่องและกฎการตรวจสอบความถูกต้องที่กระจัดกระจายทำให้การทดสอบมีความซับซ้อนมากขึ้น การใช้คลาสคำขอแบบฟอร์ม Laravel เพื่อห่อหุ้มการตรวจสอบและการอนุญาตช่วยปรับปรุงความสามารถในการทดสอบและการบำรุงรักษารหัส
ไม่สนใจประสิทธิภาพในการทดสอบ
การทดสอบที่ไม่ได้พิจารณาถึงผลกระทบด้านประสิทธิภาพเช่นการสืบค้นฐานข้อมูลที่มากเกินไปสามารถชะลอการดำเนินการทดสอบและลดผลผลิตของนักพัฒนาซอฟต์แวร์ ตัวอย่างเช่นความล้มเหลวในการใช้การโหลดที่กระตือรือร้นอาจทำให้เกิดปัญหาการสืบค้น N+1 การทดสอบควรได้รับการปรับให้เหมาะสมเพื่อประสิทธิภาพโดยไม่ต้องเสียสละความคุ้มครอง
ข้ามการทดสอบความปลอดภัย
การละเลยการทดสอบด้านความปลอดภัยที่เกี่ยวข้องเช่นการป้องกัน CSRF การฆ่าเชื้ออินพุตและการเข้ารหัสทำให้ท่าทางความปลอดภัยของแอปพลิเคชันโดยรวมอ่อนแอลง การทดสอบควรตรวจสอบว่าช่องโหว่ทั่วไปลดลงเช่นโดยการรับรองว่าโทเค็น CSRF นั้นได้รับการตรวจสอบในรูปแบบ
ไม่ใช้การรวมอย่างต่อเนื่อง (CI)
การข้ามระบบอัตโนมัติในการทดสอบการทำงานซึ่งเป็นส่วนหนึ่งของท่อรวมอย่างต่อเนื่องส่งผลให้การตรวจจับข้อผิดพลาดล่าช้าและลดคุณภาพของรหัส การทดสอบอัตโนมัติด้วยเครื่องมือ CI ช่วยให้มั่นใจได้ว่าการทดสอบจะทำงานในการเปลี่ยนแปลงรหัสทุกครั้งป้องกันการถดถอยจากการเข้าถึงการผลิต
ไม่แยกการทดสอบ
การทดสอบการเขียนที่ขึ้นอยู่กับระบบภายนอกเช่นฐานข้อมูลที่ไม่มีการแยกที่เหมาะสมอาจทำให้เกิดการทดสอบที่ไม่สม่ำเสมอซึ่งล้มเหลวเนื่องจากปัจจัยสถานะหรือภายนอกทำให้การดีบักยาก ใช้การเยาะเย้ยและปลอมเพื่อแยกการทดสอบหน่วยและการทดสอบการรวม จำกัด กับสถานการณ์เฉพาะ
การจัดการข้อผิดพลาดที่ไม่ดีในการทดสอบ
ไม่ได้ใช้ข้อความแสดงข้อผิดพลาดโดยละเอียดของ Laravel และเครื่องมือการดีบักเช่น DD () ในระหว่างการทดสอบความล้มเหลวในการแก้ไขปัญหาการแก้ไขปัญหาที่มีประสิทธิภาพ การใช้เครื่องมือเหล่านี้อย่างถูกต้องช่วยเร่งการดีบักของการทดสอบที่ล้มเหลว
การอนุญาตให้หนี้ทางเทคนิคสะสมในการทดสอบ
โครงการ Laravel หลายโครงการเริ่มต้นด้วยการทดสอบที่รีบเร่งหรือน้อยที่สุดนำไปสู่ฐานทดสอบมรดกขนาดใหญ่ที่ยากต่อการรักษาและช้าในการทำงาน การทดสอบ refactoring แบบเพิ่มขึ้นและการลบการทดสอบซ้ำซ้อนหรือเปราะช่วยให้ชุดมีประสิทธิภาพและรวดเร็ว