Отчет о покрытии кода Instabul о том, что я не тестировал метод, когда делал - PullRequest
0 голосов
/ 27 июня 2019

Когда я запускаю покрытие кода в Стамбуле, мой процент покрытия кода снижается методом, который не был проверен. Когда я пошел тестировать этот метод, я обнаружил, что уже тестировал его, и контрольный пример довольно большой по сравнению с другими моими тестами в этом файле.

Следующий код взят из спецификации:

describe('getEdiRequestsListData', () => {
    it('with customer id', () => {
      let data: any;
      let r = component.getEdiRequestsListData('', 1);
      customerService.getEdiRequestsForAccount.and.returnValue(of(data));
      component.getEdiRequestsListData('', 1);
      expect(component.resubmitSelection).toEqual([]);
      expect(component.cancelSelection).toEqual([]);
      expect(component.cancelAllChecked).toEqual(false);
      expect(component.resubmitAllChecked).toEqual(false);
      expect(component.resubmitSelection).toEqual([]);
      expect(component.totalRequestCount).toEqual(0);
    });
    it('with account id', () => {
      let data: any;
      let r = component.getEdiRequestsListData(null, null, 1);
      customerService.getEdiRequestsForAccount.and.returnValue(of(data));
      component.getEdiRequestsListData(null, null, 1);
      expect(component.resubmitSelection).toEqual([]);
      expect(component.cancelSelection).toEqual([]);
      expect(component.cancelAllChecked).toEqual(false);
      expect(component.resubmitAllChecked).toEqual(false);
      expect(component.resubmitSelection).toEqual([]);
      expect(component.totalRequestCount).toEqual(0);
    });
    it('without account id and customer id', () => {
      let data: any;
      let r = component.getEdiRequestsListData();
      customerService.getEdiRequestsForAccount.and.returnValue(of(data));
      component.getEdiRequestsListData();
      expect(component.resubmitSelection).toEqual([]);
      expect(component.cancelSelection).toEqual([]);
      expect(component.cancelAllChecked).toEqual(false);
      expect(component.resubmitAllChecked).toEqual(false);
      expect(component.resubmitSelection).toEqual([]);
      expect(component.totalRequestCount).toEqual(0);
    });
  });

Следующий код является компонентом:

getEdiRequestsListData(orderBy? : string, customerId?: number, accountId?: number) {
    var _self = this;
    this.dataSource = new DataSource({
      store: new CustomStore({
        key: 'Id',
        load: function (loadOptions: any) {
          console.log('Load Options: ' + JSON.stringify(loadOptions));
            var filters = _self.odataFilterService.buildFilters(loadOptions.filter);
            _self.currentFilterString = _self.odataFilterService.buildFilterString(filters);
            var sortBy = loadOptions.sort ? _self.odataFilterService.buildSortString(loadOptions.sort) : orderBy;
            if(customerId) {
              return _self.customersService.getEdiRequestsForCustomer(customerId, loadOptions.skip / (loadOptions.take || 20), (loadOptions.take || 20), sortBy, filters)
              .toPromise()
              .then((data: any) => {
                  _self.resubmitSelection = [];
                  _self.cancelSelection = [];
                 // _self.reviewSelection = [];
                 _self.resubmitAllChecked = false;
                 _self.cancelAllChecked = false;
                  _self.totalRequestCount = data && data.length ? data[0].TotalCount : 0;
                  _self.foundOneCancelItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 0; }) != null;
                  _self.foundOneResubmitItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 6; }) != null;
                 // _self.foundOneReviewItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 6; }) != null;

                  return {
                      data: data,
                      totalCount: _self.totalRequestCount 
                  }
              })
              .catch(error => { 
                _self.alertifyService.error('Could not load edi requests');
              });
            } else if(accountId) {
              return _self.customersService.getEdiRequestsForAccount(accountId, loadOptions.skip / (loadOptions.take || 20), (loadOptions.take || 20), sortBy, filters)
              .toPromise()
              .then((data: any) => {
                  _self.resubmitSelection = [];
                  _self.cancelSelection = [];
                 // _self.reviewSelection = [];
                 _self.resubmitAllChecked = false;
                 _self.cancelAllChecked = false;
                  _self.totalRequestCount = data && data.length ? data[0].TotalCount : 0;
                  _self.foundOneCancelItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 0; }) != null;
                  _self.foundOneResubmitItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 6; }) != null;
                 // _self.foundOneReviewItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 6; }) != null;

                  return {
                      data: data,
                      totalCount: _self.totalRequestCount 
                  }
              })
              .catch(error => { 
                _self.alertifyService.error('Could not load edi requests');
              });
            } else {
              return _self.customersService.getEdiRequestsForAccount(0, loadOptions.skip / (loadOptions.take || 20), (loadOptions.take || 20), sortBy, filters)
              .toPromise()
              .then((data: any) => {
                  _self.resubmitSelection = [];
                  _self.cancelSelection = [];
                 // _self.reviewSelection = [];
                 _self.resubmitAllChecked = false;
                 _self.cancelAllChecked = false;
                  _self.totalRequestCount = data && data.length ? data[0].TotalCount : 0;
                  _self.foundOneCancelItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 0; }) != null;
                  _self.foundOneResubmitItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 6; }) != null;
                 // _self.foundOneReviewItem = _.find(data, d =>  { return (d as EdiRequest).EditransactionStatus === 6; }) != null;

                  return {
                      data: data,
                      totalCount: _self.totalRequestCount 
                  }
              })
              .catch(error => { 
                _self.alertifyService.error('Could not load edi requests');
              });
            }

        }
      }) 
    })
    return this.dataSource;
  }

На следующем рисунке показан отчет о покрытии. Красные выделения отмечают непроверенные / непокрытые строки кода, но, как вы можете видеть в моей спецификации, я проверил их https://imgur.com/a/5KipWb6

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...