Skip to content

Releases: alesyt0h/angularAdv-pruebasApp

Pruebas Integradas Intermedias/Avanzadas

03 Sep 16:54
Compare
Choose a tag to compare
  • Revisar la existencia de una ruta
  • RouterTestingModule - NO hace falta importar el RouterModule entero para probar rutas, angular ya dispone de un módulo para ello
  • Evadir errores por selectores desconocidos NO_ERRORS_SCHEMA
  • Confirmar una directiva de Angular, en este caso, que exista un RouterOutlet By.directive(RouterOutlet)
  • Reemplazar servicios de Angular por servicios falsos controlados class FakeRouter .... {provide: Router, useClass: FakeRouter}
  • Comprobar que un elemento HTML redirija a un sitio específico
const elementos = fixture.debugElement.queryAll(By.directive(RouterLinkWithHref));
for(const elem of elementos) {
    if (elem.attributes['routerLink'] === '/medicos') {
        ....
  • Comprobar parámetros de elementos que retornen observables
class FakeActivatedRouter {
  private _subject = new Subject();

  push(valor: any){
    this._subject.next(valor);
  }

  get params(){
    return this._subject.asObservable();
  }
}

.....

it('Debe de colocar el id = nuevo', () => {
    const activatedRoute: FakeActivatedRouter = TestBed.get(ActivatedRoute);
    activatedRoute.push({id: 'nuevo'});
    ....

Pruebas Integradas Básicas

03 Sep 10:56
Compare
Choose a tag to compare
  • Aprender la configuración básica de una prueba de integración
  • Comprobación básica de que un componente de HTML es creado correctamente
  • Archivos spec.ts generados automáticamente por el AngularCLI
  • TestingModule - Se gestiona igual que cualquier módulo TestBed.configureTestingModule({ declarations... })
  • ComponentFixture - Se debe crear el componente y la instancia del Fixture
fixture = TestBed.createComponent(UsuarioComponent)
component = fixture.componentInstance;
  • Depurar un componente HTML fixture.debugElement.query(By.css('h3')).nativeElement
  • Esperar a que el Fixture esté estable para darle tiempo a que se haya renderizado el componente HTML
    fixture.whenStable().then( () => { expect... } )
  • Separación entre pruebas unitarias y pruebas de integración xxxx.unit.spec.ts

Pruebas Unitarias Intermedias/Avanzadas

02 Sep 18:02
Compare
Choose a tag to compare
  • Saltar pruebas con xit
  • Event Emitter
  • Formularios
  • Validaciones del formulario
  • Espías spyOn()
  • Expect de llamado de funciones toHaveBeenCalled()
  • Simular retornos de servicios callFake()
  • Simular retorno de valores returnValue()
  • Simular confirmaciónes de usuario spyOn(window,'confirm').and.returnValue(true)

Pruebas Unitarias Básicas

01 Sep 20:17
Compare
Choose a tag to compare
  • Introducción a las pruebas unitarias, uso del describe xdescribe it y expect
  • Cobertura del código que se esta probando con ng test --code-coverage
  • Pruebas Unitarias Básicas Realizadas:
  • Strings
  • Números
  • Booleanos
  • Arreglos
  • Clases