javascript - Hur testar man en funktion som kallas med en konstant med jasmine + TypeScript
Jag jobbar på ett Angular2/TypeScript-projekt och använder Jasmine för enhetstestning.
Hur man testar en funktion som kallas med en konstant med hjälp av Jasmine. Exempelvis 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
}
}
Finns det något annat sätt att testa än att skicka konstanten som parameter till metoden toHaveBeenCalledWith?
Svar #1
du behöver använda en spion först
spyOn('logo','drawCircle');
logo.drawLogo();
expect( logo.drawCircle ).toHaveBeenCalledWith( 10, 10, 10 );
Svar #2
importera RADIUS till din spec-fil och sedan
expect( logo.drawCircle ).toHaveBeenCalledWith( RADIUS, RADIUS, RADIUS );
