Node.js / NestJS

การทดสอบแบบ End-to-End

Supertest, ฐานข้อมูลสำหรับทดสอบ, fixtures, การยืนยันตัวตนในการทดสอบ, การทดสอบ API

20 คำถามสัมภาษณ์·
Mid-Level
1

การทดสอบ E2E (end-to-end) ในบริบทของ NestJS คืออะไร?

คำตอบ

การทดสอบ E2E ตรวจสอบความถูกต้องของกระบวนการทำงานทั้งหมดของแอปพลิเคชัน ตั้งแต่คำขอ HTTP จนถึงการตอบกลับ ผ่านทุกเลเยอร์ (controller, service, database) ต่างจากการทดสอบยูนิตที่แยกคอมโพเนนต์ออกมาเดี่ยว ๆ การทดสอบ E2E จะตรวจสอบว่าการทำงานร่วมกันของคอมโพเนนต์ทั้งหมดถูกต้อง ซึ่งช่วยตรวจจับบั๊กจากการทำงานร่วมกันที่การทดสอบยูนิตไม่สามารถจับได้

2

ไลบรารีที่ NestJS แนะนำสำหรับการทดสอบ E2E คืออะไร?

คำตอบ

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

3

จะรับอินสแตนซ์ของ HTTP server สำหรับ Supertest ในการทดสอบ NestJS ได้อย่างไร?

คำตอบ

เมธอด app.getHttpServer() จะคืนค่าอินสแตนซ์ของ HTTP server ที่อยู่เบื้องหลัง (Express หรือ Fastify) ซึ่งสามารถส่งให้ Supertest เพื่อทำการร้องขอแบบทดสอบได้ เมธอดนี้ใช้งานได้หลังจากสร้างโมดูลทดสอบด้วย Test.createTestingModule() แล้ว ช่วยให้ Supertest เข้าถึงเซิร์ฟเวอร์ได้โดยตรงโดยไม่ต้องเริ่มบนพอร์ตเครือข่าย

4

ในโปรเจกต์ NestJS โดยทั่วไปการทดสอบ E2E จะถูกวางไว้ในไฟล์ใด?

5

เมธอด Supertest ใดที่ใช้ตรวจสอบ status code ของการตอบกลับ HTTP?

+17 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Node.js / NestJS อื่นๆ

พื้นฐาน Node.js

Junior
20 คำถาม

Core API ของ Node.js

Junior
25 คำถาม

การเขียนโปรแกรมแบบอะซิงโครนัส

Junior
25 คำถาม

พื้นฐาน Express.js

Junior
20 คำถาม

พื้นฐาน NestJS

Junior
23 คำถาม

การออกแบบ REST API

Junior
20 คำถาม

การตรวจสอบความถูกต้องและ DTO

Junior
20 คำถาม

เอกสาร API และ Contract

Junior
20 คำถาม

การจัดการข้อผิดพลาด

Junior
20 คำถาม

การทดสอบหน่วย (Unit Testing)

Junior
20 คำถาม

การจัดตารางงาน

Junior
15 คำถาม

Module และ DI ของ NestJS

Mid-Level
20 คำถาม

การกำหนดค่าและการจัดการสภาพแวดล้อม

Mid-Level
20 คำถาม

การยืนยันตัวตนด้วย JWT

Mid-Level
25 คำถาม

การให้สิทธิ์และ RBAC

Mid-Level
20 คำถาม

ฐานข้อมูลด้วย TypeORM

Mid-Level
30 คำถาม

Prisma ORM

Mid-Level
25 คำถาม

Middleware และ Interceptor

Mid-Level
20 คำถาม

การอัปโหลดไฟล์

Mid-Level
15 คำถาม

WebSockets

Mid-Level
20 คำถาม

GraphQL กับ NestJS

Mid-Level
25 คำถาม

การแคชด้วย Redis

Mid-Level
20 คำถาม

คิวด้วย Bull

Mid-Level
20 คำถาม

DevOps, Logging และ CI/CD

Mid-Level
25 คำถาม

Docker และ Containerization

Mid-Level
25 คำถาม

ไมโครเซอร์วิส

Senior
30 คำถาม

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

Senior
25 คำถาม

ประสิทธิภาพและการ Deploy บน Cloud

Senior
30 คำถาม

เชี่ยวชาญ Node.js / NestJS สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี