如何在角度分量测试中模拟@INPUT值

时间:2018-06-20 21:29:07

标签: angular input mocking testcase

在我的角度应用程序中,我正在为具有@Input值的组件编写测试用例。 如何模拟@Input值。 主要组件的testSave()方法使用子组件的InputObject的ID。 当我运行测试用例时,它说未定义的对象是'this.subComponent.InputObject.id;'

export class SubComponent implements OnInit {
  @Input() inputObj: InputObject;
}

export class MainComponent implements OnInit {
  @Input() subComponent: SubComponent;

  testsave() {
  this.subComponent.InputObject.id;
  }
}

export class InputObject {
  contructor(id:string, name: string)
}

TestCase:

 it('should save', fakeAsync(()  => {
//     const event: MockEvent = new MockEvent();
//     fixture = TestBed.createComponent(MainComponent);
//     component = fixture.componentInstance;
 });

1 个答案:

答案 0 :(得分:2)

由于subComponentinputObj是公开的,因此您可以简单地覆盖它,如果测试MainComponent,则可以得到类似的内容:

component.subComponent = {inputObj: {id: 'someId', name :'someName'}};