2016-08-03 54 views
0

Ich habe einen Testfall, der überprüft, ob $ window.print() ruft oder nicht?

Dafür habe ich einen schriftlichen einen folgenden Testfall:

beforeEach(inject(function($window) { 

     Objwindow = $window; 
} 
it('Test for print', function() { 
    spyOn(Objwindow, 'print').and.callFake(function() { 
     console.log("Spy is called"); 
     return true; 
    }); 
    scope.printConfirmation(); 
    expect(Objwindow.print).toHaveBeenCalled(); 
}); 

In Controller:

scope.printConfirmation = function() { 
    $window.print() 
} 

Wenn ich jetzt nur Testfall die oben laufe, es läuft erfolgreich ohne Fehler. d. .. Spyon wird angerufen. Aber wenn ich die Testfälle aller Module (fast gibt es 1325 Testfälle) ausführen, wirft es den folgenden Fehler auf.

Expected spy print to have been called. 

Was könnte die Ursache für dieses Problem sein? Mache ich etwas falsch?

Antwort

0

haben Sie die Instanz-Controller sollte

wie var controller = $controller('Controller', { $window: Objwindow });

und Ihren Testfall nehmen Inneren

it('Test for print', function() { 
spyOn(Objwindow, 'print').and.callFake(function() { 
    console.log("Spy is called"); 
    return true; 
scope.printConfirmation(); 
expect(Objwindow.print).toHaveBeenCalled(); 
});