You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular单元测试报NullInjectorError无BlogService提供者问题排查

问题根因

错误的核心原因是测试模块的依赖注入配置属性拼写错误:Angular DI 配置中指定依赖令牌的属性名为provide,你在代码中错误写为provider(多了末尾的r字符),导致测试注入器没有识别到BlogService的提供者注册,因此抛出找不到服务的错误。

修复方案

修改blogs.component.spec.ts中TestBed的providers配置项即可:

beforeEach(
  waitForAsync(() => {
    TestBed.configureTestingModule({
      declarations: [BlogsComponent],
      imports: [RouterTestingModule],
      // 仅需将属性名provider改为provide
      providers: [{ provide: BlogService, useValue: serviceStub }],
    }).compileComponents();
  })
);

如果修改后仍有报错,可额外检查BlogService的导入路径是否和blogs.component.ts中的导入路径完全一致,避免因路径大小写、别名差异导致两个导入的服务令牌不是同一个引用。


内容的提问来源于stack exchange,提问作者NyeSass

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 11:45:04