Я хочу провести модульное тестирование моего следующего метода:
this.boxValue = '';
subscribeToFilterChanges(): void {
this.filterBox.valueChanges
.subscribe(
data => {
if (data) {
this.boxValue = data.trim().toLowerCase();
}
}
);
}
filterBox - это FormControl:
filterBox = new FormControl('');
HTML это:
<mat-form-field appearance="standard">
<input matInput [formControl]="filterBox"
id="filterBox-input">
</mat-form-field>
У меня естьзаписал модульный тест следующим образом:
it('verify filter changes', () => {
let filterBoxInput = fixture.debugElement.query(By.css('#filterBox-input'));
filterBoxInput.nativeElement.value = 'dummy';
filterBoxInput.nativeElement.dispatchEvent(new Event('input'));
fixture.detectChanges();
fixture.whenStable().then(() => {
expect(component.boxValue).toBe('dummy1');
});
});
Этот тест должен завершиться неудачей, но он все равно отображается как пройденный, даже если в .toBe ()
указано неправильное значение * В чем может быть проблема?
Я ссылался на Угловое тестирование: FormControl valueChanges Observable и использовал его в своем коде, как показано выше, но это не решило проблему.