Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

432
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!