gpt4 book ai didi

angular - Karma 测试 NullInjectorError : No provider for InjectionToken fileName

转载 作者:行者123 更新时间:2023-12-03 15:57:18 26 4
gpt4 key购买 nike

我知道 Stackoverflow 上有一些类似的问题,但它们并没有完全回答我的问题。

在我的 Angular 项目中运行 Karma 测试时,出现以下错误:NullInjectorError: No provider for InjectionToken app.config!
我知道在我的 .spec 文件中我需要为 InjectionToken 指定一个提供程序,但我不确定确切的语法。

这是我的 app.config文件:

export let APP_CONFIG = new InjectionToken("app.config");
export const AppConfig: IAppConfig = {
relativeDateLimit: 604800000,
dateFormat: 'MM-DD-YYYY',
...
}
export const AppConfig: IAppConfig = {
relativeDateLimit: 604800000,
dateFormat: 'MM-DD-YYYY',
...
}

然后在 .component.ts 文件中,我在构造函数中像这样使用它:
import { APP_CONFIG } from '../../app.config';

constructor(@Inject(APP_CONFIG) public appConfig) {}

现在在这个组件的 .spec.ts 文件中,我知道我需要为 InjectionToken 设置一个提供程序。

我试着这样做:
import { InjectionToken } from "@angular/core";
...

beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ RelativeDateComponent ],
providers: [ InjectionToken ]
})
.compileComponents();
}));

但是这种语法不起作用,因为我还需要以某种方式在那里指定 app.conig 。任何帮助表示赞赏。谢谢

最佳答案

在 *.spec.ts 文件中需要将以下内容添加到 providers 数组中:

providers: [
{ provide: APP_CONFIG, useValue: AppConfig }
]

关于angular - Karma 测试 NullInjectorError : No provider for InjectionToken fileName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51899737/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com