Búsqueda de sitios web

javascript - ¿Cómo se prueba una función que se llama con una constante usando jasmine + TypeScript?


Estoy trabajando en un proyecto de Angular2/TypeScript y usando Jasmine para pruebas unitarias.

Cómo probar una función que se llama con una constante usando Jasmine. Por ejemplo, Logo.ts

export const RADIUS: number = 10;

export class Logo {
  ...
  protected drawCircle( x: number, y: number, r: number ){...}

  protected drawLogo(){
    this.drawCircle( RADIUS, RADIUS, RADIUS );
  }
  ...
}

Logo.spec.ts

describe('drawLogo', function () {
  beforeEach(() => {
    spyOn( logo, 'drawCircle');
  }
  it('should call drawCircle method with parameters'){
    expect( logo.drawCircle ).toHaveBeenCalledWith( 10, 10, 10 ); //This fails
  }
}

¿Hay alguna otra manera de probar además de pasar la constante como parámetro al método toHaveBeenCalledWith?

Respuesta #1

necesitas usar un espía primero

spyOn('logo','drawCircle');
logo.drawLogo();
 expect( logo.drawCircle ).toHaveBeenCalledWith( 10, 10, 10 );

Respuesta #2

importa el RADIUS a tu archivo de especificaciones y luego

expect( logo.drawCircle ).toHaveBeenCalledWith( RADIUS, RADIUS, RADIUS );

Artículos relacionados