1x 3x等在角度单元测试中的业力代码覆盖率报告中意味着什么?

问题描述 投票:7回答:1

我是Angular的单元测试的新手。我得到了karma设置代码覆盖率和angular-cli。我运行了命令ng-test并打开了代码覆盖率报告。我在报道中看到了1x3x等以及我的代码行号。请找到我的报道图像。

enter image description here

这是我的测试用例代码app.component.spec.ts

/* tslint:disable:no-unused-variable */

import { TestBed, async } from '@angular/core/testing';
import { AppComponent } from './app.component';

describe('AppComponent', () => {
  beforeEach(() => {
    TestBed.configureTestingModule({
      declarations: [
        AppComponent
      ],
    });
  });

  it('should create the app', async(() => {
    let fixture = TestBed.createComponent(AppComponent);
    let app = fixture.debugElement.componentInstance;
    expect(app).toBeTruthy();
  }));

  it(`should have as title 'app works!'`, async(() => {
    let fixture = TestBed.createComponent(AppComponent);
    let app = fixture.debugElement.componentInstance;
    expect(app.title).toEqual('app works!');
  }));

  it('should render title in a h1 tag', async(() => {
    let fixture = TestBed.createComponent(AppComponent);
    fixture.detectChanges();
    let compiled = fixture.debugElement.nativeElement;
    expect(compiled.querySelector('h1').textContent).toContain('app works!');
  }));
});

我不明白1x,2x,3x等在我的代码报告中的重要性。请帮助我了解其重要性。

javascript unit-testing angular istanbul karma-coverage
1个回答
13
投票

它表示该行已执行的次数。

根据你的代码,让我们来看看你的title字段:

它首先被执行:expect(app).toBeTruthy();

第二名:expect(app.title).toEqual('app works!');

第三名:expect(compiled.querySelector('h1').textContent).toContain('app works!');

所以这就是为什么它在左边说3x。

© www.soinside.com 2019 - 2024. All rights reserved.