Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 尽管导入了NgbModule.forRoot(),但仍存在使用ng引导元素为Angular testbed设置依赖项的问题_Javascript_Angular_Testing_Testbed - Fatal编程技术网

Javascript 尽管导入了NgbModule.forRoot(),但仍存在使用ng引导元素为Angular testbed设置依赖项的问题

Javascript 尽管导入了NgbModule.forRoot(),但仍存在使用ng引导元素为Angular testbed设置依赖项的问题,javascript,angular,testing,testbed,Javascript,Angular,Testing,Testbed,设置包含ng引导模式的组件的依赖项时遇到问题。以下代码来自一个隔离问题的测试项目。当提供网站服务时,组件可以正常工作并运行,但测试似乎存在依赖性问题。我正在使用NgbModal服务打开和关闭组件中的模式。以下是组件的设置: @Component({ selector: 'app-main-component', templateUrl: './main.component.html', styleUrls: ['./main.component.css'], providers:

设置包含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()而导致的,但它在测试的导入中。
谢谢你抽出时间

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

尝试模拟
NgbModalStack
并让我知道它是如何运行的。我尝试过为NgbModalStack提供模拟,也尝试过直接提供模拟,但仍然会出现相同的错误。@a.Lynch您尝试过吗导入中的NgbModalModule.forRoot()?