Javascript 角度测试模块设置不正确:Can';t解析所有参数(ngrx)
我有一个Angular CLI 6项目,我正试图让测试在其中工作。以下是我的测试中的一个片段:Javascript 角度测试模块设置不正确:Can';t解析所有参数(ngrx),javascript,angular,typescript,ngrx,Javascript,Angular,Typescript,Ngrx,我有一个Angular CLI 6项目,我正试图让测试在其中工作。以下是我的测试中的一个片段: beforeEach(() => { spyOn(console, 'info'); TestBed.configureTestingModule({ providers: [ ConsoleLoggerEffects, provideMockActions(() => actions), ], }); effects = Tes
beforeEach(() => {
spyOn(console, 'info');
TestBed.configureTestingModule({
providers: [
ConsoleLoggerEffects,
provideMockActions(() => actions),
],
});
effects = TestBed.get(ConsoleLoggerEffects);
});
ConsoleLoggerEffects
注入了一个依赖项,操作可以观察到:
@可注射()
导出类控制台效果{
构造函数(私有操作$:操作){}
}
这完全是按照计划进行的,但不起作用
当我去运行测试时,Angular抱怨错误:无法解析ConsoleLogEffects:(?)的所有参数。
我向传递给provideMockActions
的工厂函数添加了console.log
,但它从未执行过,因此工厂函数甚至没有被调用
即使我不使用provideMockActions
并自己指定一个提供程序,它也不起作用:
TestBed.configureTestingModule({
providers: [
ConsoleLoggerEffects,
{ provide: Actions, useValue: new ReplaySubject(1)}
]
});
有人知道会发生什么吗?我也遇到了同样的问题,我最终可以通过编辑我的tsconfig.spec.json
,然后删除node\u模块并重新安装来修复它
这就是我的TS Spec配置文件现在的样子:
但是,您可以按照
我也有同样的问题,尽管我使用了玩笑和角度8。似乎可以修复它的选项是“emitDecoratorMetadata”:true,
{
"extends": "../tsconfig.json",
"compilerOptions": {
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"lib": ["es2017", "dom"],
"outDir": "../out-tsc/spec",
"module": "commonjs",
"target": "es6",
"types": ["jest", "node"],
"baseUrl": ".",
"rootDir": "./"
},
"files": [
"polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
]
}