NGXS'nin Angular uygulamalarında nasıl test edileceği
Eğer modüllerinizde NGXS
'yi taklit etmekten kaçınmanız gerekiyorsa, .keep
kullanmalısınız.
beforeEach(() =>
MockBuilder(TargetComponent, TargetModule)
// NgxsModule.forRoot() TargetModule veya onun içe aktarımlarında çağrılır
.keep(NgxsModule.forRoot().ngModule) // tüm NgxsModule.forRoot'u korur
// yalnızca modülünüz NgxsModule.forFeature'ı içe aktarıyorsa ekleyin
// NgxsModule.forFeature() TargetModule veya onun içe aktarımlarında çağrılır
.keep(NgxsModule.forFeature().ngModule) // tüm NgxsModule.forFeature'ı korur
// store'un kök sağlayıcısını korur
.keep(Store)
);
ipucu
İpucu: NGXS'yi test ederken, NgxsModule.forRoot()
ve Store
'u korumayı unutmayın. Bu, uygulamanızın düzgün çalışmasını sağlamak için kritik öneme sahiptir.
Eğer modülünüz yalnızca NgxsModule.forFeature
'ı içe aktarıyorsa, NgxsModule.forRoot()
ve Store
'u manuel olarak eklemeniz gerekir:
beforeEach(() =>
MockBuilder(
// koru ve dışa aktar
[
TargetComponent,
NgxsModule.forRoot(), // gerekli hizmetleri sağlar
Store, // store'un kök sağlayıcısını korur
],
// taklit
TargetModule,
).keep(NgxsModule.forFeature().ngModule) // tüm NgxsModule.forFeature'ı korur
);
bilgi
Ek Bilgi: NgxsModule.forRoot()
kullanmak, uygulamanızın durumu yönetme yeteneğini artırır. Bu nedenle, modül yapınıza göre doğru yüklemeleri yapmak önemlidir.