【问题标题】:Timeout does not work in AngularJS Karma - Jasmine test超时在 AngularJS Karma 中不起作用 - Jasmine 测试
【发布时间】:2015-06-05 05:56:19
【问题描述】:

我的代码:

describe('Popup', function(){

it("Should close on second click", function(){
        compileDirective(400,'click','true');  
            element.triggerHandler('click');
            timeout(function() {
                 element.triggerHandler('click');
                 scope.$digest();
                 timeout.flush();
                 element.remove();
                 $(".sidepopright").remove();
             }, 1000);

        });

});

我想延迟第二次点击弹出窗口,所以我在第一次点击后设置了超时。但是,它不起作用。有人知道吗?

【问题讨论】:

    标签: angularjs unit-testing jasmine karma-jasmine


    【解决方案1】:

    您应该使用可注入服务$timeout,而不是超时。

    $timeout(function () {
    // Do something
    }, 1000);
    

    【讨论】:

    • 我在 beforeEach() 部分定义了 timeout = $timeout,所以,这不是 $timeout 问题..有什么想法吗?
    【解决方案2】:

    你必须使用 $timeout.flush();在单元测试中模拟超时完成。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-04
      • 2017-09-21
      • 1970-01-01
      • 2016-05-14
      • 2018-02-26
      • 2014-09-20
      • 2013-05-15
      • 1970-01-01
      相关资源
      最近更新 更多