我已经阅读了有关使用TestBed测试Ionic2项目的article,当我试图在我的环境中重复示例时,我遇到了麻烦。当我尝试在第3步上开始测试时,我遇到错误“没有StatusBar提供商”。
可能这是一个愚蠢的问题,但有人可能会想到为什么会这样吗?
StatusBar包含(导入)在我的 app.component.ts 文件中。
import { StatusBar } from '@ionic-native/status-bar';
答案 0 :(得分:9)
使用TestBed时,您正在创建一个全新的@NgModule,仅用于测试。因此,您必须配置该测试模块以导入其所有依赖项 - 在您的情况下,包括状态栏。
因此,与在主应用程序中导入状态栏的方式相同(直接或通过导入其包含的NgModule),您必须对测试模块执行相同的操作。
TestBed.configureTestingModule({
......,
providers: [
StatusBar
]
})
或
TestBed.configureTestingModule({
imports: [
ModuleContainingStatusBar
]
})
(对不起,不熟悉Ionic本身,所以不知道如何导入StatusBar使用)
答案 1 :(得分:2)
尝试将其添加到providers
@NgModule
数组中