3. taraf kütüphanelerle kullanım
ng-mocks
, geliştiricilerin diğer Angular test kütüphanelerini kullanmalarını ve aynı zamanda bağımlılıkları mock'lara dönüştürmelerine olanak tanıyan ngMocks.guts
ve MockBuilder
aracılığıyla esneklik sağlar.
@ngneat/spectator
Örneğin, @ngneat/spectator
içinde createHostFactory
, createComponentFactory
, createDirectiveFactory
gibi fonksiyonları mock'alamak gerekiyorsa, ng-mocks
'tan iki seçeneği kullanabilirsiniz: ngMocks.guts
ve MockBuilder
.
@ngneat/spectator
ve ngMocks.guts
Eğer ngMocks.guts
kullanıyorsak, ilk parametre olarak istenen bileşeni geçmemiz ve ikinci parametre olarak da onun modülünü geçerek iç yapılarını çıkarıp mock'lamamız gerekiyor.
const dependencies = ngMocks.guts(MyComponent, ItsModule);
const createComponent = createComponentFactory({
component: MyComponent,
...dependencies,
});
İpuçları
ngMocks.guts
kullanırken, bileşenin ve modülün eksiksiz seçimini yapmak önemli bir adımdır. Esnekliğinizden yararlandığınızdan emin olun.
@ngneat/spectator
ve MockBuilder
Eğer MockBuilder
kullanıyorsak, o zaman ihtiyaç duyduğumuz şeyi basitçe inşa ederiz. MyComponent
korunurken, ItsModule
'in tüm beyanları, içe aktarımları ve dışa aktarımları mock'lanır.
const dependencies = MockBuilder(MyComponent, ItsModule).build();
const createComponent = createComponentFactory({
component: MyComponent,
...dependencies,
});
Lütfen, bunun ayrıca bağımsız bileşenleri, direktifleri ve boruları kapsadığını unutmayın. StandaloneComponent
'in tüm içe aktarımları mock'lanacak, ancak bileşen test için olduğu gibi kullanılabilir durumda olacaktır.
const dependencies = MockBuilder(StandaloneComponent).build();
const createComponent = createComponentFactory({
component: StandaloneComponent,
...dependencies,
});
Kârlı.
@testing-library/angular
Aynı durum @testing-library/angular
için de geçerlidir.
@testing-library/angular ve ngMocks.guts
ngMocks.guts
durumunda:
const dependencies = ngMocks.guts(MyComponent, ItsModule);
await render(MyComponent, dependencies);
@testing-library/angular ve MockBuilder
MockBuilder
durumunda:
const dependencies = MockBuilder(MyComponent, ItsModule).build();
await render(MyComponent, dependencies);