2017-05-19 7 views
2

私はカルマを使ってメソッドabc(Event)をユニットテストしようとしています。私は4つのオプションを持っている私のビューページのドロップダウンを持っています。変更すると、abc(イベント)メソッドが起動します。カルマ角2のユニットテストイベント

<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> 

私component.tsファイルは、法のABCの定義が含まれています

は、ここに私のビューページです。

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... 
} 
} 

メソッドabcをテストするにはどうすればよいですか? $イベントを模擬する方法も? ありがとうございます。

+0

ファイルに変更あなただけ 'LocaleselectorComponent'コンポーネントのインスタンスを作成し、' abc'を呼び出すことができます。また、コンストラクタを削除することもできます。 –

+0

@AluanHaddad:メソッドabcを呼び出している間、イベントを模擬する方法はありますか? –

+0

@AmitChigadani:Eventオブジェクトを疑似しようとしました。しかし、肯定的な結果はありません:( –

答えて

1

ありがとうございました! :)解決策を見つけました。オブジェクトを送信してイベントを模擬することができました。

it('should work',() => { 
    component.abc({ srcElement: { value: 'xyz' } }); 
    expect(someMethod.getValue()).toEqual('xyz'); 
}); 

私はまた私のcomponent.tsでABC法は

abc($event){ 
    //do something... 
} 
関連する問題