我在Angular 2中使用模板驱动的表单,我正在尝试先测试它们.我已经搜索过这个网站和互联网的其余部分了,我已经尝试了基本上我能找到的所有内容(主要是一串tick()语句和detectChanges()在fakeAsync中的任何地方)以获得附加到我的输入的NgModel来获取该值可以传递给我的onSubmit函数.input元素的值设置正确,但NgModel永远不会更新,这意味着onSubmit函数无法从NgModel获取正确的值.
这是模板:
<form id="createWorkout" #cwf="ngForm" (ngSubmit)="showWorkout(skillCountFld)" novalidate> <input name="skillCount" id="skillCount" class="form-control" #skillCountFld="ngModel" ngModel /> <button type="submit" id="buildWorkout">Build a Workout</button> </form>
注意:我知道发送ngSubmit的值会导致测试失败,但这意味着我可以在函数中设置断点并检查NgModel.
这是组件:
import { Component, OnInit } from '@angular/core';
import {SkillService} from "../model/skill-service";
import {NgModel} from "@angular/forms";
@Component({
  selector: 'app-startworkout',
  templateUrl: './startworkout.component.html',
  styleUrls: ['./startworkout.component.css']
})
export class StartworkoutComponent implements OnInit {
  public skillCount:String;
  constructor(public skillService:SkillService) { }
  showWorkout(value:NgModel):void {
    console.log('breakpoint', value.value);
  }
  ngOnInit() {
  }
}
这是规格:
/* tslint:disable:no-unused-variable */
import {async, ComponentFixture, TestBed, fakeAsync, tick} from '@angular/core/testing'; …