Ana içeriğe geç

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.