2016-08-03 56 views
0

我有一個測試用例,旨在檢查$ window.print()是否正在調用?

對於我有一個寫了下面的測試案例:

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(); 
}); 

在控制器:

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

現在,如果我運行上面的唯一測試用例,這是沒有任何錯誤運行成功。即Spyon被召喚。 但是,如果我運行所有模塊的測試用例(幾乎有1325個測試用例),它會拋出以下錯誤。

Expected spy print to have been called. 

什麼可能是這個問題的原因?我做錯了什麼?

回答

0

你必須要控制的實例

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

和測試用例應該是它裏面

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