问题描述:
在 Angular 测试中,当使用 providedIn: Module
时,可能会遇到破坏的问题。
解决方法:
以下是一种解决方法,可以在测试中正确地处理 providedIn: Module
。
import { NgModule } from '@angular/core';
import { MyService } from './my.service';
@NgModule({
providers: [MyService]
})
export class MockModule { }
TestBed.configureTestingModule
来配置模拟模块:import { TestBed } from '@angular/core/testing';
import { MyService } from './my.service';
import { MockModule } from './mock.module';
describe('MyComponent', () => {
let myService: MyService;
beforeEach(() => {
TestBed.configureTestingModule({
imports: [MockModule]
});
myService = TestBed.inject(MyService);
});
it('should do something', () => {
// 在测试中使用 myService 进行断言和操作
expect(myService.someMethod()).toBe('something');
});
});
通过使用模拟模块,可以正确地注入 MyService
并在测试中使用它。这样就能够解决 providedIn: Module
破坏的问题。