【发布时间】:2021-01-12 09:45:52
【问题描述】:
我正在为 Angular 11 中的输入框编写单元测试。
这是我的 spec.ts 代码:
import { ComponentFixture, TestBed } from '@angular/core/testing';
import 'jasmine';
import { ExpectedConditions } from 'protractor';
import { MicroplateComponent } from './microplate.component';
describe('MicroplateComponent', () => {
let component: MicroplateComponent;
let fixture: ComponentFixture<MicroplateComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [MicroplateComponent]
})
.compileComponents();
});
beforeEach(() => {
fixture = TestBed.createComponent(MicroplateComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
describe('Evaluation of input box', () => {
it('Should return true for "1, 2, 3"', () => {
const input = fixture.nativeElement.querySelector('input');
const event = createNewEvent('input'); // I get error at this line
input.value = '1, 2, 3';
input.dispatchEvent(event);
fixture.detectChanges();
expect(component.columns?.valid).toBe(true);
});
});
});
我收到以下错误,但我不知道我错在哪里。
error TS2304: Cannot find name 'createNewEvent'.
我在 Angular 网站上使用过这种方法。
【问题讨论】:
-
缺少导入?
createNewEvent没有在任何地方定义 -
@MikeS.,因为我不知道“createNewEvent”在哪里。
-
我认为是 component.createNewEvent 什么的……(假设它是你组件中的一个函数)
标签: javascript angular unit-testing jasmine integration-testing