Performance: Mocking providers
MEDIUM IMPACT
This concept affects the speed and responsiveness of unit tests by controlling how dependencies are simulated during testing.
const mockService = { fetchData: jest.fn().mockResolvedValue('mocked data') };
const moduleRef = await Test.createTestingModule({
providers: [
DependentService,
{ provide: RealService, useValue: mockService },
],
}).compile();
const service = moduleRef.get(DependentService);
await service.callRealDependency();const moduleRef = await Test.createTestingModule({ providers: [RealService, DependentService], }).compile(); const service = moduleRef.get(DependentService); await service.callRealDependency();
| Pattern | Dependency Calls | Test Runtime | Resource Usage | Verdict |
|---|---|---|---|---|
| Using real providers | Triggers real network/database calls | Longer due to real operations | High due to external resources | [X] Bad |
| Using mocked providers | Simulates calls with fast responses | Shorter due to no real calls | Low, no external resource usage | [OK] Good |