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 );
