簡體   English   中英

因果覆蓋率無法識別分支測試

[英]Karma-coverage not recognizing branch test

我的業力覆蓋率報告指出,下面的示例未涵蓋我的“ else”分支,但已對其進行了測試。 有什么想法為什么業力覆蓋無法識別我的測驗?

utilities.service.js:

function formatValue(value, form) {

  if (form === '2') {
    valueFormatted = twoDecimals(value);
  } else if (form === '4') {
    valueFormatted = fourDecimals(value);
  }

  return valueFormatted + '!';
}

utilitiesServiceSpec.js:

describe('format values', function() {
  var formattedValue;
  var value;
  var form;

  it('should format 2 decimal places', function() {
    value = 100;
    form = '2';
    formattedValue = utilitiesService.formatValue(value, form);
    expect(formattedValue).toEqual('100.00!');
  });

  it('should format 4 decimal places', function() {
    value = 100;
    form = '4';
    formattedValue = utilitiesService.formatValue(value, form);
    expect(formattedValue).toEqual('100.0000!');
  });
});

實際上業力覆蓋是正確的。 您錯過了測試else分支的機會。

describe( 'format values', function() {
var formattedValue;
var value;
var form;
// Will test if (form === '2')
it( 'should format 2 decimal places', function() {
    value = 100;
    form = '2';
    formattedValue = utilitiesService.formatValue( value, form );
    expect( formattedValue ).toEqual( '100.00!' );
} );

// Will test else if (form === '4')
it( 'should format 4 decimal places', function() {
    value = 100;
    form = '4';
    formattedValue = utilitiesService.formatValue( value, form );
    expect( formattedValue ).toEqual( '100.0000!' );
} );
//Will test else
it( 'should test if value should not be formatted to decimal if form is other than 2 and 4', function() {
    value = 100;
    form = '5';
    formattedValue = utilitiesService.formatValue( value, form );
    expect( formattedValue ).toEqual( '100!' );
} );} );

考慮到您的Utility.service.js是

function formatValue( value, form ) {
var valueFormatted = value;
if ( form === '2' ) {
    valueFormatted = twoDecimals( value );
} else if ( form === '4' ) {
    valueFormatted = fourDecimals( value );
}

return valueFormatted + '!';}

要么

function formatValue( value, form ) {
var valueFormatted;
if ( form === '2' ) {
    valueFormatted = twoDecimals( value );
} else if ( form === '4' ) {
    valueFormatted = fourDecimals( value );
} else {
    valueFormatted = value;
}

return valueFormatted + '!';}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM