如何在Jasmine中间谍或模拟Angular @Input?

时间:2017-08-30 01:40:06

标签: angular unit-testing jasmine

我有一个具有Input的组件,以及使用输入的函数

组件:

@Input() form: FormGroup;
....

showPreviousEmployer() {
    return parseInt(this.form.value.yearsWithEmployer, 10) < 5;
}

我如何窥探或模仿&#39;表格&#39;茉莉花测试?

我试过了:

    spy = spyOnProperty(component, 'form', 'get').and.returnValue({value: {yearsWithEmployer: '6'}});
    expect(component.showPreviousEmployer).toBe(false);

然而,这会产生错误:

  

错误:表单属性不存在

1 个答案:

答案 0 :(得分:2)

显然我可以在没有间谍或模拟的情况下直接设置值:

   component.form = {value: {yearsWithEmployer: '6'}};
   expect(component.showPreviousEmployer()).toBe(false);