Я запускаю модульный тест для углового приложения при 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 и вызвал функцию