ngMocks.change
ngMocks.change, bir form kontrolünün dış değişimlerini simüle etmeye yardımcı olur. Form kontrolünün bir mock örneği mi yoksa gerçek bir örnek mi olduğu önemli değildir.
bilgi
Bir değişiklik simüle etmek için, form kontrolüne ait bir debug elementi ve değişiklik için istenen değere ihtiyacımız var.
Aşağıdaki şablonun olduğunu varsayalım:
<input data-testid="inputControl" [(ngModel)]="value" />
Ve, value değerini 123 olarak ayarlayacak bir değişiklik simüle etmek istiyoruz. O zaman çözüm şu şekilde görünebilir:
// input'un debug elemanını arıyoruz
const el = ngMocks.find(['data-testid', 'inputControl']);
// değişikliği simüle etme
ngMocks.change(el, 123);
// doğrulama
expect(component.value).toEqual(123);
ipucu
Alternatif olarak, ngMocks.find tarafından desteklenen seçimlerle basitçe şu şekilde de yapılabilir:
ngMocks.change('input', 123);
ngMocks.change('[data-testid="inputControl"]', 123);
ngMocks.change(['data-testid'], 123);
ngMocks.change(['data-testid', 'inputControl'], 123);
Kazanç!
not
Hem FormsModule hem de ReactiveFormsModule desteklenmektedir.