Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

434
Vistas
Clase abstracta de prueba unitaria de jazmín

¿Hay alguna manera de crear una prueba unitaria de jazmín para un componente abstracto?

haciendo

 const fixture = TestBed.createComponent(MyAbstractComponent);

dice, "no se puede asignar un tipo de constructor abstracto a un tipo de constructor no abstracto"

Intenté algunas búsquedas pero no aparece nada.

about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede crear una clase simple en su archivo de prueba que se extienda desde la clase abstracta (no olvide simular métodos abstractos), en lugar de simplemente probar sus métodos no abstractos. Digamos que tenemos MyAbstractClass :

 export abstract class MyAbstractClass { sum(a: number, b: number): number { return a + b; } abstract calc1(): void; abstract calc2(): void; }

y luego en el archivo de especificaciones podemos simplemente crear una nueva clase derivada:

 class MyClass extends MyAbstractClass { // just mock any abstract method calc1(): void { return; } calc2(): void { return; } }

Entonces ahora podemos escribir pruebas para métodos no abstractos:

 describe('MyAbstractClass', () => { let myClass: MyClass; beforeEach(() => { myClass = new MyClass(); }); it('sum two args', () => { const a = 1, b = 2; const sum = myClass.sum(a, b); expect(sum).toBe(3); }); });

También creó un ejemplo de stackblitz de este ejemplo de prueba.

about 4 years ago · Santiago Trujillo Denunciar

0

Esto es lo que hice para probar una tubería angular SafePipe que estaba usando una clase abstracta DomSanitizer .

 // 1. Import the pipe/component to be tested import { SafePipe } from './safe.pipe'; // 2. Import the abstract class import { DomSanitizer } from '@angular/platform-browser'; // 3. Important step - create a mock class which extends // from the base class imported above and add implement // the mock methods class MockDomSanitizer extends DomSanitizer { sanitize(): string{ return 'ANY'; } bypassSecurityTrustHtml(): string{ return 'ANY' } bypassSecurityTrustStyle(): string{ return 'ANY' } bypassSecurityTrustScript(): string{ return 'ANY' } bypassSecurityTrustUrl(): string{ return 'ANY' } bypassSecurityTrustResourceUrl(): string{ return 'ANY' } } describe('SafePipe', () => { it('should return an HTML string', () => { // 4. create an instance of pipe class and inject the mocked class above let safePipe = new SafePipe(new MockDomSanitizer()); // 5. Add your asserions as ususal expect(safePipe.transform(null, 'html')).toBeTruthy(); expect(safePipe.transform(null, 'style')).toBeTruthy(); expect(safePipe.transform(null, 'script')).toBeTruthy(); expect(safePipe.transform(null, 'url')).toBeTruthy(); expect(safePipe.transform(null, 'resourceUrl')).toBeTruthy(); expect(safePipe.transform(null, 'anything')).toContain('anything'); }); });

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda