使用 TestBed 进行测试:没有 Provider for StatusBar 错误

Testing with TestBed: no Provider for StatusBar error

我已经阅读了 article 关于使用 TestBed 测试 Ionic2 项目的文章,当我试图在我的环境中重复文章中的示例时遇到了麻烦。当我尝试在 步骤 3 上开始测试时,出现错误 "No provider for StatusBar".

这可能是个愚蠢的问题,但有人能猜出为什么会这样吗?

StatusBar 包含(导入)在我的 app.component.ts 文件中。

import { StatusBar } from '@ionic-native/status-bar';

尝试将其添加到 @NgModule

providers 数组中

使用 TestBed 时,您正在创建一个全新的 @NgModule 专门用于测试。因此,您必须配置该测试模块以导入其所有依赖项 - 在您的情况下包括状态栏。

因此,与在主应用程序中导入状态栏的方式相同(直接或通过导入其包含的 NgModule),您必须对测试模块执行相同的操作。

TestBed.configureTestingModule({
  ......,
  providers: [
    StatusBar
  ]
})

 TestBed.configureTestingModule({
   imports: [
      ModuleContainingStatusBar
   ]     
})

(不好意思,对Ionic本身不熟悉所以不知道你是怎么导入StatusBar使用的)