2017-05-28 1 views
0

ich auf AngularJS 1.5 arbeite und nur mit Jasmin und Karma für Testfälle ... Meine Controller verwendenJasmine Testfall: Wie lösen locale.ready()

locale.ready('common').then(function() { 
}) 

Ich bin nicht in der Lage begann "locale" verspotten. Obwohl es wie für andere Dienste einfach sein sollte. fand ich etwas im Internet zu diesem Zweck, aber die Dokumentation nicht einen funktionierenden Code hat:

‚Karma-json-Präprozessor‘

Kann ich einen Beispielcode erhalten, wie man zeigt, Scheingebietsschema in diesem Szenario?

EDIT: (29May'17) Unten ist der Beispielcode: Versprechen gibt das Objekt die Lokalisierungsschlüssel & Werte enthalten:

angular.module('myApp', []) 
    .controller('mytestcontroller', ['$scope', 'locale', 
     function ($scope, locale) { 
      locale.ready('common').then(function (res) { 
       $scope.reportname = 'gauravreport'; 
      }); 
     } 
    ]); 

Unten ist ein Beispielcode ich versuche:

var scope, controller; 
beforeEach(inject(function($controller, $rootScope, locale) { 
     scope = $rootScope.$new(); 
     controller = $controller('mytestcontroller', { 
      '$scope': scope, 
      'locale': locale 
     }); 
    })); 
it('check report name', function(done) { 
     var data = window.$json.$get('app/languages/en-US/home.lang.json'); 
     locale.ready('myreport') 
      .then(function() { 
       expect(scope.reportname).toBe("gauravreport"); 
       done(); 
      }) 
      .catch(done.fail); 
    }); 

Problem ist, wenn ich diesen Test ausführen, es heißt, Berichtsname ist nicht definiert. Es scheint, dass es den Gebietsschemadienst nicht auflösen kann.

+0

Was ist 'locale.ready'? Bitte geben Sie den Code für die Einheiten an, in denen Sie ihn verwenden, sowie für aktuelle Tests, bei denen Sie sich nicht darüber lustig machen können. – estus

+0

Anbei der Code, den ich testen möchte. Der gesamte Code kann nicht hochgeladen werden. Ich bin nicht sicher, wie man es benutzt, also nach irgendwelchen Codeproben suchend. –

+0

Der ganze Zweck der Weitergabe von Abhängigkeiten an $ controller besteht darin, gemachte Abhängigkeiten zu übergeben. Es ist absolut sinnlos, echte "locale" zu übergeben. Übergeben Sie stattdessen einen Schein. – estus

Antwort

Verwandte Themen