【问题标题】:Jasmine SpyOn on $window.print is not working properly$window.print 上的 Jasmine SpyOn 无法正常工作
【发布时间】:2016-08-03 06:06:44
【问题描述】:

我有一个测试用例,旨在检查 $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.

此问题的原因可能是什么?我做错什么了吗?

【问题讨论】:

    标签: angularjs jasmine karma-jasmine


    【解决方案1】:

    你必须获取控制器的实例

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

    【讨论】:

      猜你喜欢
      • 2018-09-13
      • 2017-10-12
      • 1970-01-01
      • 2015-10-27
      • 2019-07-11
      • 1970-01-01
      • 1970-01-01
      • 2012-06-24
      • 2016-12-01
      相关资源
      最近更新 更多