# การทำ Unit Testing ใน Angular (Angular) > Jasmine, Karma, TestBed, การทดสอบ component, การทดสอบ service, mocking, spies, การทดสอบแบบ async, fixture - 22 คำถามสัมภาษณ์ - Mid-Level - [คำถามสัมภาษณ์: Angular](https://sharpskill.dev/th/technologies/angular/interview-questions.md) ## 1. บทบาทหลักของ TestBed ในการทำ unit testing ของ Angular คืออะไร? **คำตอบ** TestBed เป็น utility หลักสำหรับการตั้งค่าและสร้าง testing module ของ Angular ช่วยให้สามารถตั้งค่า providers, imports, declarations และสร้าง instance ของ component ในสภาพแวดล้อมการทดสอบที่แยกออกมา TestBed สร้างบริบทการทดสอบที่จำลองการทำงานของ Angular NgModule ทำให้สามารถใช้ dependency injection และคอมไพล์ component ได้ ## 2. ควรใช้เมธอด TestBed ใดเพื่อรับ instance ของ service? **คำตอบ** TestBed.inject() เป็นเมธอดที่แนะนำสำหรับการรับ instance ของ service จาก injector ของ testing module เมธอดนี้แทนที่ syntax เก่า TestBed.get() (deprecated) และให้ TypeScript typing ที่ดีกว่า โดยเข้าถึง service ที่จัดเตรียมในการตั้งค่า TestBed ผ่าน configureTestingModule ## 3. เมธอด TestBed.createComponent() คืนค่าอะไร? **คำตอบ** createComponent() คืนค่า ComponentFixture ซึ่งเป็น wrapper รอบ component ที่ให้การเข้าถึง instance ของ component (componentInstance), DOM element (nativeElement), DebugElement และเมธอดทดสอบเช่น detectChanges() ComponentFixture เป็นออบเจกต์หลักสำหรับการทดสอบ component ของ Angular ## มีอีก 19 คำถาม - บทบาทของ fixture.detectChanges() ในการทดสอบ component คืออะไร? - จะสร้าง Jasmine spy เพื่อ mock เมธอดของ service ได้อย่างไร? สมัครฟรี: https://sharpskill.dev/th/login ## หัวข้อสัมภาษณ์ Angular อื่นๆ - [พื้นฐาน TypeScript](https://sharpskill.dev/th/technologies/angular/interview-questions/typescript-basics.md): 25 คำถาม, Junior - [TypeScript ขั้นสูง](https://sharpskill.dev/th/technologies/angular/interview-questions/typescript-advanced.md): 20 คำถาม, Junior - [พื้นฐาน Angular](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-fundamentals.md): 20 คำถาม, Junior - [คอมโพเนนต์และวงจรชีวิต](https://sharpskill.dev/th/technologies/angular/interview-questions/components-lifecycle.md): 20 คำถาม, Junior - [Services & Dependency Injection](https://sharpskill.dev/th/technologies/angular/interview-questions/services-dependency-injection.md): 20 คำถาม, Junior - [การจัดระเบียบโมดูล Angular](https://sharpskill.dev/th/technologies/angular/interview-questions/modules-organization.md): 22 คำถาม, Mid-Level - [Angular CLI](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-cli.md): 18 คำถาม, Junior - [Directives และ Pipes](https://sharpskill.dev/th/technologies/angular/interview-questions/directives-pipes.md): 22 คำถาม, Mid-Level - [Routing และการนำทาง](https://sharpskill.dev/th/technologies/angular/interview-questions/routing-navigation.md): 24 คำถาม, Mid-Level - [Reactive Forms](https://sharpskill.dev/th/technologies/angular/interview-questions/forms-reactive.md): 26 คำถาม, Mid-Level - [Template-driven Forms](https://sharpskill.dev/th/technologies/angular/interview-questions/forms-template-driven.md): 16 คำถาม, Mid-Level - [พื้นฐาน RxJS](https://sharpskill.dev/th/technologies/angular/interview-questions/rxjs-fundamentals.md): 22 คำถาม, Mid-Level - [Operator ของ RxJS](https://sharpskill.dev/th/technologies/angular/interview-questions/rxjs-operators.md): 24 คำถาม, Mid-Level - [HttpClient และการเรียก API](https://sharpskill.dev/th/technologies/angular/interview-questions/http-client.md): 22 คำถาม, Mid-Level - [การจัดการ state พื้นฐาน](https://sharpskill.dev/th/technologies/angular/interview-questions/state-management-basics.md): 20 คำถาม, Mid-Level - [Change Detection](https://sharpskill.dev/th/technologies/angular/interview-questions/change-detection.md): 20 คำถาม, Mid-Level - [Angular Signals](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-signals.md): 20 คำถาม, Mid-Level - [Standalone Components](https://sharpskill.dev/th/technologies/angular/interview-questions/standalone-components.md): 18 คำถาม, Mid-Level - [การทดสอบ End-to-End](https://sharpskill.dev/th/technologies/angular/interview-questions/testing-e2e.md): 18 คำถาม, Mid-Level - [Build และการเพิ่มประสิทธิภาพ](https://sharpskill.dev/th/technologies/angular/interview-questions/build-optimization.md): 20 คำถาม, Mid-Level - [พื้นฐาน NgRx](https://sharpskill.dev/th/technologies/angular/interview-questions/ngrx-fundamentals.md): 24 คำถาม, Senior - [NgRx ขั้นสูง](https://sharpskill.dev/th/technologies/angular/interview-questions/ngrx-advanced.md): 24 คำถาม, Senior - [สถาปัตยกรรม Angular](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-architecture.md): 22 คำถาม, Senior - [การปรับแต่งประสิทธิภาพ](https://sharpskill.dev/th/technologies/angular/interview-questions/performance-optimization.md): 22 คำถาม, Senior - [ความปลอดภัยและแนวทางปฏิบัติที่ดี](https://sharpskill.dev/th/technologies/angular/interview-questions/security-best-practices.md): 20 คำถาม, Senior - [รูปแบบ RxJS ขั้นสูง](https://sharpskill.dev/th/technologies/angular/interview-questions/advanced-rxjs-patterns.md): 22 คำถาม, Senior - [Angular Universal และ SSR](https://sharpskill.dev/th/technologies/angular/interview-questions/angular-universal-ssr.md): 20 คำถาม, Senior - [Angular Micro-frontends](https://sharpskill.dev/th/technologies/angular/interview-questions/micro-frontends-angular.md): 20 คำถาม, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/th/technologies/angular/interview-questions/testing-unit