例如,当组件需要一个日志服务对象(依赖项注入(DI) )时,该组件如何使用Cypress组件测试?
考虑:
@Component({
selector: 'app-not-authorized',
templateUrl: './not-authorized.component.html',
styleUrls: ['./not-authorized.component.scss']
})
export class NotAuthorizedComponent implements OnInit {
constructor(private logger: LoggingService) { }
ngOnInit() {
this.logAccess();
}
...
}Cypress是如何为组件创建提供DI参数/对象的?
为了完整起见,以下是我们在运行组件测试时遇到的错误。
1) NotAuthorizedComponent
mount:
NullInjectorError: R3InjectorError(DynamicTestModule)[LoggingService -> LoggingService]:
NullInjectorError: No provider for LoggingService!
at NullInjector.get (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:13946:27)
at R3Injector.get (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:14113:33)
at R3Injector.get (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:14113:33)
at NgModuleRef.get (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:24641:33)
at Object.get (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:24318:35)
at lookupTokenUsingModuleInjector (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:6183:39)
at getOrCreateInjectable (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:6295:12)
at ɵɵdirectiveInject (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:17219:12)
at NodeInjectorFactory.NotAuthorizedComponent_Factory [as factory] (ng:///NotAuthorizedComponent/ɵfac.js:4:50)
at getNodeInjectable (http://localhost:8080/__cypress/src/default-node_modules_tslib_tslib_es6_js-node_modules_angular_core_fesm2015_core_mjs.js:6390:44)发布于 2022-09-15 15:24:24
您可以通过将它们添加到providers数组中的MountConfig中来注入依赖项。请参考这篇文章。
https://stackoverflow.com/questions/73733398
复制相似问题