Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.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/31.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 尝试使用angular 4和ionic 3测试基本形式时没有值访问器_Javascript_Angular_Ionic2 - Fatal编程技术网

Javascript 尝试使用angular 4和ionic 3测试基本形式时没有值访问器

Javascript 尝试使用angular 4和ionic 3测试基本形式时没有值访问器,javascript,angular,ionic2,Javascript,Angular,Ionic2,我有一个简单的离子形式: 福 名称 拯救 和一个页面组件: 从'@angular/core'导入{Component}; 从'@angular/forms'导入{FormBuilder,FormGroup}; @组成部分({ 选择器:“fo page foo”, templateUrl:“./foo.html” }) 导出类页面{ 食物组:FormGroup; 构造函数(公共formBuilder:formBuilder){ } 恩戈尼尼特(){ this.fooForm=this.form

我有一个简单的离子形式:


福
名称
拯救
和一个页面组件:

从'@angular/core'导入{Component};
从'@angular/forms'导入{FormBuilder,FormGroup};
@组成部分({
选择器:“fo page foo”,
templateUrl:“./foo.html”
})
导出类页面{
食物组:FormGroup;
构造函数(公共formBuilder:formBuilder){
}
恩戈尼尼特(){
this.fooForm=this.formBuilder.group({
姓名:['']
});
}
公共储蓄{
log(this.fooForm.value);
}
}
还有一个测试:

从“/foo”导入{FooPage};
从“@angular/core/testing”导入{TestBed,ComponentFixture};
从'@angular/core'导入{CUSTOM_ELEMENTS_SCHEMA,DebugElement};
从“@angular/forms”导入{FormsModule,ReactiveFormsModule};
从“离子角度”导入{Form};
描述('Foo页面:',()=>{
让comp:FooPage;
let夹具:组件夹具;
设de:DebugElement;
在每个之前(()=>{
TestBed.configureTestingModule({
模式:[自定义元素\u模式],
声明:[第页],
提供者:[表格],
导入:[FormsModule,ReactiveFormsModule],
});
fixture=TestBed.createComponent(FooPage);
fixture.detectChanges();
comp=夹具。组件状态;
de=fixture.debugElement;
恩戈尼尼特公司();
});
描述('.constructor()',()=>{
它('应该定义',()=>{
期望(comp.toBeDefined();
});
});
});
项目和测试结构基于。由于以下错误,测试失败:
表单控件没有值访问器


我尝试了各种方法,但似乎离子特性和最近的Angular 4的结合使得它需要添加一些额外的配置,并且由于Angular 4的变化,一些现有的解决方案不再有效

我两天前遇到了这个问题,多亏了将其隔离并发布,所以才能够找到基于的解决方案

要点是将
IonicModule
添加到
imports
中,但这会触发一系列其他离子导入:

导入{
应用程序、平台、配置、键盘、,
表单,IonicModule,DomController
}从“离子角度”;
导入{
mockConfig,mockDomController,MockPlatform,MockPlatform
}来自“ionic angular/util/mock providers”;
因此,在每次更新之前更新的
应以

TestBed.configureTestingModule({
模式:[自定义元素\u模式],
声明:[第页],
供应商:[
应用程序,
形式,
键盘
{provide:Platform,useClass:MockPlatform},
{提供:DomController,useValue:mockDomController(mockPlatform())},
{provide:Config,useValue:mockConfig()},
],
进口:[
FormsModule,
离子模块,
反应窗体模块
],
});
具有上述示例的PR已合并到