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

标签 angular unit-testing jasmine

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

成分:

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

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

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

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

但是,这给出了错误:

Error: form property does not exist

最佳答案

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

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

关于angular - 如何在 Jasmine 中监视或模拟 Angular @Input?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45950619/

相关文章:

angular - 根据浏览器语言设置 Angular LOCALE_ID

c# - 如何在 ASP.NET Core 3.0 中使用 SignalR

angular - .Net Core 与 Angular 4 : 404 error when I refresh the browser

unit-testing - 处理程序单元测试的模拟功能

javascript - jasmine.stringMatching 方法未定义

javascript - 用于嵌套 api 调用的 Angular 6 mergeMap

unit-testing - 在测试方法中本地覆盖 Ninject 绑定(bind)以绑定(bind)模拟对象

php - PHPUnit 测试的目录布局?

jasmine - AngularJS Protractor - 使用 Ng-Click 绑定(bind)在页面上查找元素

typescript - 如何在没有 <reference> 的情况下在 TypeScript 中导入带有 ‘Typings’ 的模块?