2016-08-02 25 views
0

Mein Karma-Coverage-Bericht zeigt die lokale Variable an. ist das möglich oder es ist ein karma-coverage Bericht Problem.Wird Jasmine empfohlen, den lokalen Variablen- oder Karma-Coverage-Bericht zu reduzieren?

Bitte schauen Sie sich den Angular Controller Code an.

'use strict'; 

angular.module('moduleName') 
    .controller('FormController', [ '$log', 
     function FormController($log) { 

      // Controller Local Variables. 
      var that = this; 

      that.hideLoader = function() { 
       that.isLoading = false; 
      }; 

     } 
]); 

enter image description here

Meine Frage: Ist das möglich, die lokalen Variablen und Funktionsparameter Bedingungen abzudecken. zum Beispiel ist unten.

that.hideLoader = function (userObj) { 
    var id = userObj.id; 

    if(id) { 
    that.isLoading = false; 
    } 
    else { 
    that.isError = true; 
    } 
}; 

Im obigen Beispiel habe ich id Variable lokalen Benutzerobjekt id-Attribut deklariert. jetzt ist es sehr schwer, den Code abzudecken. In diesem Fall empfiehlt Jasmine, die lokale Variable oder ihren Karma-Coverage-Berichtsvorschlag zu reduzieren?

Antwort

0

Mein Karma-Bericht soll die lokale Variable abdecken. ist das möglich oder es ist ein Karma-Berichterstattung Problem.

Das Coverage-Tool funktioniert ordnungsgemäß, indem überprüft wird, ob Ihre Tests jede Codezeile abdecken. Das ist die Definition der Codeabdeckung.

Auf der anderen Seite:

var that = this; 
that.hideLoader = function() { that.isLoading = false}; 

sind NICHT lokale Variablen. Wie definiert, sind sie Eigenschaften Ihres Controllers. Bitte beachten Sie: Verwenden Sie bitte "use strict" und verwenden Sie keine nicht deklarierten Eigenschaften wie that.isLoading. Es ist nicht sehr lesbar und es ist eine schlechte Übung, obwohl die Sprache es erlaubt.

Auch, wenn Sie Fragen stellen, fügen Sie bitte den Code und nicht Bilder des Codes.

aktualisieren

Die Antwort auf Ihre Frage ist ja. Karma-Berichte über jede Codezeile berührten (grün) oder unberührt (rot).

+0

können Sie die Frage falsch verstanden haben. meine Frage ist über diese Variable und meine Frage hat den Code, wonach Sie suchen! –

+0

Ich habe die Frage im Detail einschließlich Titel mit Codebeispielen aktualisiert –

+0

Vielen Dank für die Klärung. Ich habe es falsch verstanden. Ich habe auch die Antwort aktualisiert. Prost –