当在Angular中进行单元测试时,可能会遇到“注入令牌提供什么”错误。这通常是由于测试中未正确配置注入所需的提供程序引起的。以下是解决此错误的一些方法,包含代码示例:
import { TestBed } from '@angular/core/testing';
import { MyService } from './my.service';
describe('MyComponent', () => {
let myService: MyService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [MyService]
});
myService = TestBed.inject(MyService);
});
it('should create', () => {
expect(myService).toBeTruthy();
});
});
import { TestBed } from '@angular/core/testing';
import { MyService } from './my.service';
describe('MyComponent', () => {
let myService: MyService;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
{
provide: MyService,
useValue: { /* mock service implementation */ }
}
]
});
myService = TestBed.inject(MyService);
});
it('should create', () => {
expect(myService).toBeTruthy();
});
});
请注意,在这个例子中,我们使用了useValue属性来提供一个自定义的模拟实现,但你也可以使用useClass、useExisting或useFactory属性来提供其他类型的实现。
这些方法可以帮助你解决“注入令牌提供什么”错误,并确保在进行Angular单元测试时正确配置注入。