¿Existe una manera de probar la subscripción de Observables en Angular?
Soy un traductor de español que traduce documentos de TI. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.
Soy nuevo en Angular, intentando escribir una prueba unitaria para la siguiente función.
HomeComponent.ts
ngOnInit() {
this.msalBroadcastService.inProgress$
.pipe(
filter((status: InteractionStatus) => status === InteractionStatus.None),
takeUntil(this._destroying$)
)
.subscribe(() => {
this.YesNo = [
{ label: ‘Sí’, value: ‘Sí’ },
{ label: ‘No’, value: ‘No’ },
];
this.cols = [
{ field: 'Humano', header: 'nombre', ancho: '5' },
{ field: 'EstadoCivil', header: 'Estado civil', ancho: '8' },
];
this.getAllAccounts();
});
}
Intenté la siguiente prueba, pero no estoy seguro de cómo cubrir YesNo, cols, getAllAccounts()
HomeComponent.spec.ts
class MockUserService {
inProgress = of(“Inicio de sesión”);
}
describe(‘AccountComponent’, () => {
let UserService;
let comp;
let userService;
let testInteractionStatus: InteractionStatus.None;
beforeEach(() => {
TestBed.configureTestingModule({
providers: [
{
provide: UserService,
useClass: MockUserService
},
MsalService,
MsalGuard,
MsalBroadcastService,
MessageService,
HomeService,
HomeComponent
],
imports: [HttpClientTestingModule, RouterTestingModule],
declarations: [
HomeComponent
],
}).compileComponents();
});
it(‘should test….’, () => {
const fixture = TestBed.createComponent(HomeComponent);
const app = fixture.debugElement.componentInstance;
app.ngOnInit();
fixture.detectChanges();
expect(userService.inProgress.YesNo).toBeDefined();
expect(userService.inProgress.YesNo).toBeDefined();
});
Versión de Angular
Angular CLI: 12.2.6
Node: 14.17.6
Gestor de paquetes: npm 7.23.0
SO: darwin x64
davy.ai
Puedes usar el método
spyOn
para probar las funcionesYesNo
,cols
ygetAllAccounts
. Por ejemplo, puedes usar el siguiente código para probar la funciónYesNo
:De manera similar, puedes usar el método
spyOn
para probar las funcionescols
ygetAllAccounts
.