karma angular 2应用程序中的单元测试事件

karma angular 2应用程序中的单元测试事件,angular,events,mocking,karma-jasmine,Angular,Events,Mocking,Karma Jasmine,我试图使用karma对abc(事件)方法进行单元测试。我在我的查看页面中有一个下拉列表,其中有4个选项,在更改后将触发abc(事件)方法 这是我的查看页面: <div class="myClass"> <select (change)="abc($event)" id="my"> <option value="one">One</option> <option value="two">Two</option>

我试图使用karma对abc(事件)方法进行单元测试。我在我的查看页面中有一个下拉列表,其中有4个选项,在更改后将触发abc(事件)方法

这是我的查看页面:

<div class="myClass">
<select (change)="abc($event)" id="my">
    <option value="one">One</option>
    <option value="two">Two</option>
    <option value="three">Three</option>
    <option value="four">Four</option>
</select>
如何测试abc方法?还有如何模拟$event? 提前谢谢。

谢谢,成功了!!!:)我找到了解决办法。能够通过发送对象来模拟事件

it('should work',()=>{
abc({srcmelement:{value:'xyz'}});
expect(someMethod.getValue()).toEqual('xyz');
});
我还将component.ts文件中的abc方法更改为

abc($event){
//做点什么。。。
}

您只需创建
LocaleselectorComponent
组件的实例并调用
abc
。此外,还可以删除构造函数。@AluanHaddad:调用方法abc时如何模拟事件?@AmitChigadani:尝试模拟事件对象。但是没有积极的结果:(你所需要做的就是传入一个对象
import {Component,OnInit} from '@angular/core';
import { LocaleService } from '../../../services/locale.service';
@Component({
selector: 'app-localeselector',
templateUrl: './localeselector.component.html',
styleUrls: ['./localeselector.component.scss']
})


export class LocaleselectorComponent implements OnInit{

 private localeService: any;
 private language;
 constructor() { }

 ngOnInit() { }

}

abc(ev: Event) {
    //something...
}
}