微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为 jasmine 中的可重用垫表列制作测试用例

如何解决为 jasmine 中的可重用垫表列制作测试用例

这是我的父母 TS

import { Component,Input,OnInit } from '@angular/core';
import { Column } from '../../../../shared/molecules/table/column';
import {
  DataRecord,TransitReport,} from '../../../organisms/transit-report-wrapper/transit-report.model';

@Component({
  selector: 'app-transit-report',templateUrl: './transit-report.component.html',styleUrls: ['./transit-report.component.scss'],})
export class TransitReportComponent implements OnInit {
  @input() dataSource!: TransitReport;
  @input()
  columns: Column[] = [
    {
      columnDef: 'overdueReviews',header: 'Overdue Reviews',cell: (element: DataRecord): string =>
        `${element.overdueReviews} clients`,},{
      columnDef: 'outstandingCovenantBreaches',header: 'Outstanding Covenant Breaches',cell: (element: DataRecord): string =>
        `${element.outstandingCovenantBreaches} clients`,{
      columnDef: 'outstandingMarginingBreaches',header: 'Outstanding Margining Breaches',cell: (element: DataRecord): string =>
        `${element.outstandingMarginingBreaches} clients`,{
      columnDef: 'periodStartDate',header: 'Period Start Date',cell: (element: DataRecord): string => `${element.periodStartDate}`,{
      columnDef: 'periodEndDate',header: 'Period End Date',cell: (element: DataRecord): string => `${element.periodEndDate}`,];
  convertedArray: Array<DataRecord> = [];

  ngOnInit(): void {
    // this.convertedArray.push(this.dataSource.data);
  }
}

这是 HTML 模板

 <section class="transitReport">
<app-table [dataSource]="convertedArray" [tableColumns]="columns" class="transitReportTable"></app-table>
</section>

在伊斯坦布尔,测试用例覆盖率应该覆盖红色块。

enter image description here

这是规范

import { HttpClientTestingModule } from '@angular/common/http/testing';
import { ComponentFixture,Testbed } from '@angular/core/testing';
import { MockComponent } from 'ng2-mock-component';

import { TransitReportComponent } from './transit-report.component';

describe('TransitReportComponent',() => {
  let component: TransitReportComponent;
  let fixture: ComponentFixture<TransitReportComponent>;

  beforeEach(async () => {
    await Testbed.configureTestingModule({
      imports: [HttpClientTestingModule],declarations: [
        TransitReportComponent,MockComponent({
          selector: 'app-table',inputs: ['dataSource','tableColumns'],}),],}).compileComponents();
  });

  beforeEach(() => {
    fixture = Testbed.createComponent(TransitReportComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create',() => {
    expect(component).toBeTruthy();
  });
});

我不知道如何覆盖父测试用例中的“单元格”函数和“元素”模板语句。 在显示这些统计数据之前: 44.44% 声明 4/9 100% 分支 0/0 16.67% 功能 1/6 37.5% 行 3/8 我想通过编写测试用例使它们全部达到 100 个。

解决方法

您可以执行以下操作,我使用了虚拟数据。我已经遍历了数组的所有项目,如果需要,您可以使用循环。所以基本上我们正在使用模拟数据传递测试 cell() 以返回所需的字符串。

    it('should test all cells of column',() => {
    const element = {
      overdueReviews: 'overdueReviews',outstandingCovenantBreaches: 'outstandingCovenantBreaches',outstandingMarginingBreaches: 'outstandingMarginingBreaches',periodStartDate: 'periodStartDate',periodEndDate:'periodEndDate'
    };
    expect(component.columns[0].cell(element)).toBe('overdueReviews clients');
    expect(component.columns[1].cell(element)).toBe('outstandingCovenantBreaches clients');
    expect(component.columns[2].cell(element)).toBe('outstandingMarginingBreaches clients');
    expect(component.columns[3].cell(element)).toBe('periodStartDate');
    expect(component.columns[4].cell(element)).toBe('periodEndDate');

  });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。