
การทดสอบแบบ End-to-End
Supertest, ฐานข้อมูลสำหรับทดสอบ, fixtures, การยืนยันตัวตนในการทดสอบ, การทดสอบ API
1การทดสอบ E2E (end-to-end) ในบริบทของ NestJS คืออะไร?
การทดสอบ E2E (end-to-end) ในบริบทของ NestJS คืออะไร?
คำตอบ
การทดสอบ E2E ตรวจสอบความถูกต้องของกระบวนการทำงานทั้งหมดของแอปพลิเคชัน ตั้งแต่คำขอ HTTP จนถึงการตอบกลับ ผ่านทุกเลเยอร์ (controller, service, database) ต่างจากการทดสอบยูนิตที่แยกคอมโพเนนต์ออกมาเดี่ยว ๆ การทดสอบ E2E จะตรวจสอบว่าการทำงานร่วมกันของคอมโพเนนต์ทั้งหมดถูกต้อง ซึ่งช่วยตรวจจับบั๊กจากการทำงานร่วมกันที่การทดสอบยูนิตไม่สามารถจับได้
2ไลบรารีที่ NestJS แนะนำสำหรับการทดสอบ E2E คืออะไร?
ไลบรารีที่ NestJS แนะนำสำหรับการทดสอบ E2E คืออะไร?
คำตอบ
Supertest เป็นไลบรารีที่แนะนำสำหรับการทดสอบ E2E ใน NestJS เพราะช่วยให้ทดสอบ endpoint HTTP ได้โดยไม่ต้องเริ่มเซิร์ฟเวอร์บนพอร์ตเครือข่าย โดยจะสร้างอินสแตนซ์ของแอปพลิเคชันแบบแยกเดี่ยวและส่งคำขอ HTTP จำลองโดยตรง ทำให้การทดสอบเร็วขึ้น น่าเชื่อถือมากขึ้น และหลีกเลี่ยงความขัดแย้งของพอร์ตระหว่างการทดสอบแบบขนาน
3จะรับอินสแตนซ์ของ HTTP server สำหรับ Supertest ในการทดสอบ NestJS ได้อย่างไร?
จะรับอินสแตนซ์ของ HTTP server สำหรับ Supertest ในการทดสอบ NestJS ได้อย่างไร?
คำตอบ
เมธอด app.getHttpServer() จะคืนค่าอินสแตนซ์ของ HTTP server ที่อยู่เบื้องหลัง (Express หรือ Fastify) ซึ่งสามารถส่งให้ Supertest เพื่อทำการร้องขอแบบทดสอบได้ เมธอดนี้ใช้งานได้หลังจากสร้างโมดูลทดสอบด้วย Test.createTestingModule() แล้ว ช่วยให้ Supertest เข้าถึงเซิร์ฟเวอร์ได้โดยตรงโดยไม่ต้องเริ่มบนพอร์ตเครือข่าย
ในโปรเจกต์ NestJS โดยทั่วไปการทดสอบ E2E จะถูกวางไว้ในไฟล์ใด?
เมธอด Supertest ใดที่ใช้ตรวจสอบ status code ของการตอบกลับ HTTP?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Node.js / NestJS อื่นๆ
พื้นฐาน Node.js
Core API ของ Node.js
การเขียนโปรแกรมแบบอะซิงโครนัส
พื้นฐาน Express.js
พื้นฐาน NestJS
การออกแบบ REST API
การตรวจสอบความถูกต้องและ DTO
เอกสาร API และ Contract
การจัดการข้อผิดพลาด
การทดสอบหน่วย (Unit Testing)
การจัดตารางงาน
Module และ DI ของ NestJS
การกำหนดค่าและการจัดการสภาพแวดล้อม
การยืนยันตัวตนด้วย JWT
การให้สิทธิ์และ RBAC
ฐานข้อมูลด้วย TypeORM
Prisma ORM
Middleware และ Interceptor
การอัปโหลดไฟล์
WebSockets
GraphQL กับ NestJS
การแคชด้วย Redis
คิวด้วย Bull
DevOps, Logging และ CI/CD
Docker และ Containerization
ไมโครเซอร์วิส
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย
ประสิทธิภาพและการ Deploy บน Cloud
เชี่ยวชาญ Node.js / NestJS สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี