angular - 我无法从 Angular 的规范文件中访问组件 - Karma/Jasmine 单元测试
问题描述
我正在尝试在 Angular 中运行一个简单的单元测试,但它失败了,我无法从 spect 文件中访问该组件。它说找不到未定义的属性,我无法弄清楚错误在哪里。这是我要测试的组件中的函数:
factorOrQuickpay(): void {
if (this.load.factor) {
this.factor = true;
this.resourceType = TableResources.Factor;
} else if (!this.load.factor) {
this.factor = false;
this.resourceType = TableResources.Quickpay;
} else if(!this.load.factor && !this.load.quickpay) {
this.none = true;
}
}
这是 .spec 文件:
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { LoadResourcesComponent } from './load-resources.component';
describe('LoadResourcesComponent', () => {
let component: LoadResourcesComponent;
let fixture: ComponentFixture<LoadResourcesComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [LoadResourcesComponent],
}).compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(LoadResourcesComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
fdescribe('factorOrQuickpay', () => {
beforeEach(() => {
spyOn(component, 'factorOrQuickpay');
});
it('shows Factor Load scenario', () => {
component.factorOrQuickpay()
expect(component.factor).toBe(true);
});
});
});
你能帮我找出错误在哪里吗?
错误消息是“TypeError:无法读取未定义的属性‘因素’。”
谢谢。
解决方案
我认为您的节点版本是 15.0。将您的节点版本降级到节点 14.0 将起作用。
推荐阅读
- c# - 统一要求身体变量
- discord - 如何通过 discord.js 中 DM 中发送的命令检查用户是否在特定服务器中具有特定角色?
- python - 在创建电报机器人时,终端正在争论第 8 行中的“文本”
- google-apps-script - 无法将参数从云函数传递到谷歌应用程序脚本并返回响应
- spring-boot - Maven 中缺少 Asciidoctor “Snippets”
- google-apps-script - 如何使用 GMAIL API 从 Google Apps 脚本发送电子邮件?
- flutter - 元素类型“问题”不能分配给列表类型“小部件”
- android - 尝试从 firebase 检索数据,但未显示数据
- python - python3.7.9忘记框架
- apache2 - 带有 HTTP Basic/Digest 身份验证的 Gerrit 3.2.3:无法启动服务