gpt4 book ai didi

javascript - 尽管导入了 NgbModule.forRoot(),但使用 ng bootstrap 元素为 Angular 测试平台设置依赖项时出现问题

转载 作者:行者123 更新时间:2023-11-28 20:36:50 24 4
gpt4 key购买 nike

我在为包含 ng 引导模式的组件设置依赖项时遇到问题。以下代码来自隔离问题的测试项目。当提供网站服务时,该组件可以正常运行并且没有错误,但测试似乎存在依赖性问题。我正在使用 NgbModal 服务打开和关闭组件内的模式。这是组件的设置:

@Component({
selector: 'app-main-component',
templateUrl: './main.component.html',
styleUrls: ['./main.component.css'],
providers: [ NgbModal ]
})
export class MainComponent implements OnInit {

constructor(private modalService: NgbModal) { }

这里是在 app.module.ts 中设置依赖项的地方:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { MainComponent } from './main/main.component';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';

@NgModule({
declarations: [
AppComponent,
MainComponent
],
imports: [
BrowserModule,
NgbModule.forRoot()
],
bootstrap: [AppComponent]
})

测试平台的依赖项在此处的 main.component.ts 文件中设置:

  beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MainComponent ],
imports: [ NgbModule.forRoot(), BrowserModule ],
providers:[ NgbModal ]
})
.compileComponents();
component = TestBed.get(MainComponent);
modalService = TestBed.get(NgbModal);
}));

当我尝试运行测试时出现此错误

Failed: StaticInjectorError(DynamicTestModule)[NgbModal -> NgbModalStack]: 
StaticInjectorError(Platform: core)[NgbModal -> NgbModalStack]:
NullInjectorError: No provider for NgbModalStack!

这似乎暗示缺少依赖项。在主应用程序中出现这样的错误似乎通常是由 NgbModule.forRoot() 未导入引起的,但它在测试导入中。感谢您的时间。

最佳答案

事实证明,问题不在我的主要组件规范文件中,而是对我的应用程序组件规范文件运行测试时出现的问题。由于该组件在主应用程序组件中使用,因此它需要在应用程序组件规范文件中具有相同的导入。

关于javascript - 尽管导入了 NgbModule.forRoot(),但使用 ng bootstrap 元素为 Angular 测试平台设置依赖项时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51249260/

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