2016-07-04 16 views
0

Ich teste Winkeldienste mit Winkeleinheitstests mit Karma und Jasmin. In meinen Diensten habe ich sprintf() von sprintf-js-Modul verwendet, um die generate-Zeichenfolge abzurufen. Jetzt, als ich versuchte, Service zu prüfen, gibt es Fehler sprintf nicht definiert.So testen Sie Bibliotheksfunktionen von Drittanbietern in Winkeleinheitstests

Code ist so etwas wie dieses:

myservice.js

abc(a,b){ 
var url = sprintf(a,b); 
ajax.get(url); 
} 

myservice.spec.js: Ich habe den myservice in dieser Datei zu injizieren und es -

myservice.abc(dummya, dummyb); 

$rootScope.$appy(); 

expect(myservice.abc).toHaveBeenCalled(); 

Any help appreciated . 

Antwort

0

Damit die Third-Party-Bibliotheken derzeit in Tests funktionieren, fügen Sie sie als Abhängigkeit hinzu für den Service.

angular.module('my-defined-module-name').constant('sprintf',window.sprintf)

angular.service('my-service',['sprintf',function(sprintf){ 

}]) 
+0

Danke für die Antwort. Gibt es keinen anderen Weg, sonst muss ich viele Änderungen an meinem Code vornehmen? Wie derzeit habe ich die sprintf-js in meiner app.js benötigt und seine Funktionalität global genutzt. –

+0

@SumitChaudhari Nur so kann ich wissen, dass es andere Möglichkeiten geben könnte. – Exlord

+0

Danke, es hat funktioniert. :) –