2017-05-19 2 views
2

카르마를 사용하여 메소드 abc (이벤트)를 단위 테스트하려고합니다. 내보기 페이지에서 변경 사항에 따라 최대 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를 테스트 할 수 있습니까? $ event를 조롱하는 방법도? 미리 감사드립니다.

+0

내 component.ts 파일의 ABC 방법을 변경했습니다. 또한 생성자를 제거 할 수 있습니다. –

+0

@AluanHaddad : 메소드 abc를 호출하는 동안 어떻게 이벤트를 조롱 할 수 있습니까? –

+0

@AmitChigadani : Event 객체 조롱을 시도했습니다. 그러나 긍정적 인 결과가 없습니다 : ( –

답변

1

감사합니다. :) 해결책을 찾았습니다. 개체를 보내서 이벤트를 조롱 할 수있었습니다.

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

는 또한 당신은 단지 LocaleselectorComponent` 구성 요소 '의 인스턴스를 생성하고 abc``호출 할 수

abc($event){ 
    //do something... 
} 
관련 문제