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);