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