es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Puedes usar el método spyOn para probar las funciones YesNo, cols y getAllAccounts. Por ejemplo, puedes usar el siguiente código para probar la función YesNo:

    spyOn(userService, 'inProgress').and.returnValue(testInteractionStatus);
    expect(userService.inProgress.YesNo).toBeDefined();
    

    De manera similar, puedes usar el método spyOn para probar las funciones cols y getAllAccounts.

Comments are closed.