我有一个测试用例,旨在检查$ 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 :(得分: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();
});