如何使用jasmine + TypeScript测试使用常量调用的函数

时间:2016-07-26 06:15:37

标签: javascript angularjs unit-testing typescript jasmine

我正在使用Angular2 / TypeScript项目并使用jasmine进行单元测试。

如何使用jasmine测试使用常量调用的函数。 例如。 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
  }
}

除了将常量as参数传递给toHaveBeenCalledWith方法之外,还有其他方法可以测试吗?

2 个答案:

答案 0 :(得分:0)

将RADIUS导入您的spec文件,然后

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

答案 1 :(得分:0)

你需要先使用间谍

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