我是一个使用Jasmine和Karma在Angular中进行单元测试的初学者。我的模板是
<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.orgen-USdocsWebEvents。
传入你的方法中