如何在 Jasmine 中监视或模拟 Angular @Input?

Mic*_*ael 4 unit-testing jasmine angular

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

成分:

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

showPreviousEmployer() {
    return parseInt(this.form.value.yearsWithEmployer, 10) < 5;
}
Run Code Online (Sandbox Code Playgroud)

我如何监视或模拟茉莉花测试的“表单”?

我试过:

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

然而这给出了错误:

错误:表单属性不存在

Mic*_*ael 5

显然我可以直接设置该值,而无需间谍或模拟:

   component.form = {value: {yearsWithEmployer: '6'}};
   expect(component.showPreviousEmployer()).toBe(false);
Run Code Online (Sandbox Code Playgroud)