如何对将事件作为参数 [Angular/Jasmine] 的方法进行单元测试
How to unit test a method that takes event as parameter [Angular/Jasmine]
我是 Angular 中使用 Jasmine 和 Karma 进行单元测试的初学者。我的模板是:
<p-overlayPanel #op>
<div>
...
</div>
</p-overlayPanel>
<button (click)="closeTimeselector($event, op)">
Close
</button>
注:p-overlayPanel
是primeng
的组成部分。
这是我的逻辑:
closeTimeselector(event, element) {
element.hide(event);
}
我要检查何时从模板中按下 Close
按钮,上面的方法应该被调用并且它应该按预期工作。
这是我的规范文件:
import { TestBed, async, ComponentFixture } from '@angular/core/testing';
import { ...} from './timeselector.component';
...
fdescribe('Timeselector', () => {
...
let fixture: ComponentFixture<TimeselectorComponent>;
let component: TimeselectorComponent;
let mockTranslateService;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
...
],
declarations: [TimeselectorComponent],
providers: [
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
}));
beforeEach(() => {
...
fixture=TestBed.createComponent(TimeselectorComponent);
component=fixture.componentInstance;
timeselector=new TimeselectorComponent(mockTranslateService);
})
it('should create', () => {
expect(component).toBeTruthy();
});
it('...', () => {
...
})
})
你能帮我解决这个问题吗?我应该测试什么。它甚至可以测试吗?请帮助我。
您随时可以创建新活动:
const event = new Event('click');
或您需要的任何类型的活动:https://developer.mozilla.org/en-US/docs/Web/Events
传递给你的方法
我是 Angular 中使用 Jasmine 和 Karma 进行单元测试的初学者。我的模板是:
<p-overlayPanel #op>
<div>
...
</div>
</p-overlayPanel>
<button (click)="closeTimeselector($event, op)">
Close
</button>
注:p-overlayPanel
是primeng
的组成部分。
这是我的逻辑:
closeTimeselector(event, element) {
element.hide(event);
}
我要检查何时从模板中按下 Close
按钮,上面的方法应该被调用并且它应该按预期工作。
这是我的规范文件:
import { TestBed, async, ComponentFixture } from '@angular/core/testing';
import { ...} from './timeselector.component';
...
fdescribe('Timeselector', () => {
...
let fixture: ComponentFixture<TimeselectorComponent>;
let component: TimeselectorComponent;
let mockTranslateService;
beforeEach(async(() => {
TestBed.configureTestingModule({
imports: [
...
],
declarations: [TimeselectorComponent],
providers: [
],
schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).compileComponents();
}));
beforeEach(() => {
...
fixture=TestBed.createComponent(TimeselectorComponent);
component=fixture.componentInstance;
timeselector=new TimeselectorComponent(mockTranslateService);
})
it('should create', () => {
expect(component).toBeTruthy();
});
it('...', () => {
...
})
})
你能帮我解决这个问题吗?我应该测试什么。它甚至可以测试吗?请帮助我。
您随时可以创建新活动:
const event = new Event('click');
或您需要的任何类型的活动:https://developer.mozilla.org/en-US/docs/Web/Events
传递给你的方法