A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

TestBed + Spies

11/25
Recursos

Aportes 2

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

En mi caso me estaba fallando la prueba 鈥渟hould call to getValue from ValueService鈥 porque no hab铆a eliminado o comentado la constante interna de la prueba unitaria 鈥渃onst valueServiceSpy鈥 y me generaba el siguiente error: 鈥淓rror: Expected undefined to be 鈥榝ake value鈥欌. Al comentar la constante constante tomo el valor del valueServiceSpy que se encuentra en el scope global y no la del scope de la prueba unitaria y ah铆 si pasa sin problema.

  it('should call getValue from spy of ValueService', () => {
    // const valueServiceSpy = jasmine.createSpyObj('ValueService', ['getValue']);
    valueServiceSpy.getValue.and.returnValue('fake value');
    // const masterService = new MasterService(valueServiceSpy);
    expect(service.getValue()).toBe('fake value');
    expect(valueServiceSpy.getValue).toHaveBeenCalled();
    expect(valueServiceSpy.getValue).toHaveBeenCalledTimes(1);
  });

TestBed unido con los spies nos ayudara para resolver la inyecci贸n de dependencias. Tomando como ejemplo a master service

master.service.spec.ts

import { TestBed } from '@angular/core/testing';
import { MasterService } from './master.service';
import { ValueService } from './value.service';

describe('MasterService', () => {

聽 聽 let masterService: MasterService;
聽 聽 let valueServiceSpy: jasmine.SpyObj<ValueService>;

聽 beforeEach(() => {
聽 聽 const spy = jasmine.createSpyObj('ValueService', ['getValue']);
聽 聽 TestBed.configureTestingModule({
聽 聽 聽 聽providers: [ MasterService,
聽 聽 聽 聽 聽 聽 聽 聽 聽 { provide: ValueService, useValue: spy }
聽 聽 聽 聽 聽 聽 聽 聽 聽 ]
聽 聽 });
聽 聽 masterService = TestBed.inject(MasterService);
聽 聽 valueServiceSpy = TestBed.inject(ValueService) as jasmine.SpyObj<ValueService>;
聽 });

聽 it('should be created', () => {
聽 聽 expect(masterService).toBeTruthy();
聽 });
聽 
聽聽 it('should call to getValue from ValueService', () => {
聽 聽 const valueServiceSpy = jasmine.createSpyObj('ValueService', ['getValue']);
聽 聽 valueServiceSpy.getValue.and.returnValue('fake value');
聽 聽 expect(masterService.getValue()).toBe('fake value');
聽 聽 expect(valueServiceSpy.getValue).toHaveBeenCalled();
聽 聽 expect(valueServiceSpy.getValue).toHaveBeenCalledTimes(1);
聽 });
});