Supertest · สร้าง E2E Test Harness
สร้าง TestingModule
ใช้ TestingModule ประกอบ module จริงที่ต้องการทดสอบ
TestingModule คือจุดประกอบ dependency
`Test.createTestingModule()` รับ metadata แบบเดียวกับ module ของ NestJS แล้วคืน builder สำหรับ compile dependency graph ในบริบท test เราจึงเลือกได้ว่าจะนำ module จริงเข้ามาหรือ override dependency บางตัว
สร้าง TestingModule จาก TodoModuleTS
การเรียก `compile()` คือจุดที่ NestJS ประกอบ providers, controllers และ imports
module จริงกับ dependency ที่ควบคุมได้
| ตัวเลือก | สิ่งที่ได้ | ใช้เมื่อ |
|---|---|---|
| imports: [TodoModule] | module wiring ใกล้ runtime | ต้องการ E2E boundary ของ feature |
| providers: [FakeService] | สร้าง module ขนาดเล็ก | กำลังทดสอบ controller/application boundary |
| overrideProvider(...) | เปลี่ยน dependency จุดเดียว | external service ไม่ deterministic หรือมีค่าใช้จ่ายสูง |
ใน track นี้จะใช้ module จริงเป็นค่าเริ่มต้น แล้วค่อยใช้ override เฉพาะจุดที่อธิบายไว้ การ override ทุกอย่างจะลดหลักฐานที่ E2E test ควรให้ได้