Юнит тест Жасмин: ngModelChange вызывает функцию или нет - PullRequest
0 голосов
/ 26 сентября 2019

Я запускаю модульный тест для углового приложения при ngModelChange, если функция работает, потому что я тестирую некоторую логику, которая происходит внутри этой функции.Но мой тест не может шпионить, если эта функция вызвана или нет !!!

** component.spec.js **

it('should auto compute something', ()=>{
 component.record = "123";
 let spyOnDaemonChange = spyOn(component,'func1').and.callThrough();
 fixture.detectChanges();
 let daemonDOM = fixture.debugElement.query(By.css('#domelement'));
 daemonDOM.nativeElement.value ="123";
 fixture.detectChanges();
 expect(spyOnDaemonChange).toHaveBeenCalled(); //fails
})

component.ts

func1(){
 if(this.record == "abc"){
   this.num = 88;
 } else {
    this.num = 78; 
   }
}

**component.html**
 <td>
   <input style="width:300px;" id="domelement" type="text" class="form-control" [(ngModel)]="record" (ngModelChange) ="func1" name="record" required>
 </td>

component.record = "123" или daemonDOM.nativeElement.value = "123";такие же.Должно быть, это вызвало ngModelChange и вызвало функцию, я прав?

Я хочу, чтобы тест обнаружил ngModelChange и вызвал функцию

1 Ответ

0 голосов
/ 26 сентября 2019

Я могу вызвать изменение, используя DOMelement.nativeElement.dispatchEvent (new Event ('input'));

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...