使用TestBed进行测试:没有StatusBar的提供程序错误

Nob*_*bbs 7 testbed typescript ionic2 angular

我已经阅读了有关使用TestBed测试Ionic2项目的文章,当我试图在我的环境中重复示例时,我遇到了麻烦.当我尝试在第3步开始测试时,出现错误"StatusBar没有提供者".

可能这是一个愚蠢的问题,但有人可能会想到它为什么会发生?

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

import { StatusBar } from '@ionic-native/status-bar';
Run Code Online (Sandbox Code Playgroud)

sno*_*ete 9

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

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

TestBed.configureTestingModule({
  ......,
  providers: [
    StatusBar
  ]
})
Run Code Online (Sandbox Code Playgroud)

要么

 TestBed.configureTestingModule({
   imports: [
      ModuleContainingStatusBar
   ]     
})
Run Code Online (Sandbox Code Playgroud)

(对不起,不熟悉Ionic本身,所以不知道你如何导入StatusBar使用)