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.