Ana içeriğe geç

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.