从Jasmine 1.3迁移到2.0的问题done和SetTimeOut的问题

断开邻居

我最近开始从茉莉花1.3迁移到2.0,遇到了一些问题。

这是我的旧测试的样子:

it("should start heartbeat after successful login and stop heartbeat after logout", function () {
    runs(function () {
        auth.hbTimeout = 500;
        var loggedIn = auth.login("USERWITHSESSION", "xyz", {});
        expect(loggedIn).toBe(true);
        expect(auth.getAuthenticated()).toBe(true);
        expect(auth.user).toBeDefined();
        expect(auth.user.Session).toEqual(74790750);
        setTimeout(function () {
            auth.stopHeartbeat();
            auth.user.Session = 74790760;
        }, 2000);
    });
    waitsFor(function () {
        return auth.user.Session == 74790760;
    }, "The session-id should have been changed", 2600);
    runs(function () {
        auth.heartbeat();
        expect(auth.getAuthenticated()).toBe(false);
        expect(auth.user).not.toBeDefined();
        auth.login("USERWITHSESSION", "xyz", {});
        setTimeout(function () {
            auth.user.Session = 74790750;
        }, 500);
    });
    waitsFor(function () {
        return auth.user.Session == 74790750;
    }, "The session-id should have been changed back", 1100);
    runs(function () {
        setTimeout(function () {
            auth.logout();
        }, 2000);
    });
    waitsFor(function () {
        return auth.getAuthenticated() == false;
    });
    expect(auth.user).not.toBeDefined();
});

我想复制部分直到第一个waitsFor()。对于两秒钟的超时,我尝试了setTimout()并将期望值移入afterEach。

据我了解,茉莉花应该等待两秒钟然后执行代码,但是期望总是错误的,并且测试失败。

这是我的方法:

 describe("this is a async nested describe",function(){

    afterEach(function(done){
        expect(auth.user.Session).toBe(74790760);
    });

    it("let's do this",function(){

       auth.hbTimeout = 500;
        var loggedIn = auth.login("USERWITHSESSION", "xyz", {});
        expect(loggedIn).toBe(true);
        expect(auth.getAuthenticated()).toBe(true);
        expect(auth.user).toBeDefined();
        expect(auth.user.Session).toEqual(74790750);


        setTimeout(function() {
            auth.stopHeartbeat();
            auth.user.Session = 74790760;
            done();
        },2000);
    });

});

我敢肯定我做错了什么。有人可以给我提示吗?哦,无论我做什么,即使我将超时设置为一分钟,测试仍会在相同的时间内达到预期的效果。

提前致谢!

埃里克

您没有将done函数传递let's do this规范中。Jasmine 2.0根据length规范功能属性以同步或异步方式运行规范,因此no-args函数将始终同步运行。

下面的代码来自Jasmine的GitHub(/src/core/QueueRunner.js)。

for(iterativeIndex = recursiveIndex; iterativeIndex < length; iterativeIndex++) {
  var fn = fns[iterativeIndex];
  if (fn.length > 0) {
    return attemptAsync(fn);
  } else {
    attemptSync(fn);
  }
}

另外,不要忘记也要调用done()afterEach函数,如下所示:

afterEach(function(done){
    expect(auth.user.Session).toBe(74790760);
    done();
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将Asp.Net Core RC1迁移到RC2后的问题

来自分类Dev

从Java 1.4,EJB 1迁移到Java 6和EJB 3

来自分类Dev

将 Webpack 从版本 1 迁移到 2

来自分类Dev

为什么我从.net core rc1迁移到rc2时遇到这种不兼容性问题

来自分类Dev

Vee Validate从2.2迁移到3.X的问题

来自分类Dev

从Swift 2.3迁移到Swift 3时出现的问题

来自分类Dev

使用Jasmine 2测试异步DOM / CSS更改-从waitsFor迁移至done()

来自分类Dev

EF Core 3 1对0关系问题

来自分类Dev

从HSQL DB 1.8迁移到2.x内存问题

来自分类Dev

迁移到Angular2 final后的问题-意外令牌<

来自分类Dev

AFNetworking从1.x迁移到3.x

来自分类Dev

从 rails 4.2 迁移到 5 问题需要降级 ActiveRecord 版本才能使用 1 gem

来自分类Dev

将Struts 1标签迁移到Struts 2

来自分类Dev

范围属性从Struts1迁移到Struts2

来自分类Dev

将Struts 1标签迁移到Struts 2

来自分类Dev

从 1.x 迁移到 2.x?

来自分类Dev

将 koa v1 迁移到 v2

来自分类Dev

迁移到Qualcomm Augmented Reality时的ARCamera问题vuforia-unity-android-ios-3-0-6

来自分类Dev

Flutter-索引0、1和2的节点的Firebase RTDB读取问题

来自分类Dev

将 Google Endpoint V1 迁移到 V2,将 Java 7 迁移到 Java 8

来自分类Dev

将socket.io从0.9.x迁移到1.x,配置RedisStore时遇到问题

来自分类Dev

URL重写语法问题R:0,R:1,R:2

来自分类Dev

迁移到Swift 3后对Alamofire的成员request()问题的含糊不清的引用

来自分类Dev

官方迁移到 v4 后 npm(打字稿)插件的 Ionic v3 问题

来自分类Dev

将JavaScript \ Ionic \ Angular 1应用迁移到Typescript \ Ionic 2 \ Angular 2应用

来自分类Dev

从AFNetworking 1.3迁移到AFNetworking 2.0的问题

来自分类Dev

将数据从mssql迁移到mysql问题

来自分类Dev

从Byte Buddy 0.7.7迁移到1.0.2的问题

来自分类Dev

从Wagtail 2.7.1迁移到2.7.4的问题

Related 相关文章

  1. 1

    将Asp.Net Core RC1迁移到RC2后的问题

  2. 2

    从Java 1.4,EJB 1迁移到Java 6和EJB 3

  3. 3

    将 Webpack 从版本 1 迁移到 2

  4. 4

    为什么我从.net core rc1迁移到rc2时遇到这种不兼容性问题

  5. 5

    Vee Validate从2.2迁移到3.X的问题

  6. 6

    从Swift 2.3迁移到Swift 3时出现的问题

  7. 7

    使用Jasmine 2测试异步DOM / CSS更改-从waitsFor迁移至done()

  8. 8

    EF Core 3 1对0关系问题

  9. 9

    从HSQL DB 1.8迁移到2.x内存问题

  10. 10

    迁移到Angular2 final后的问题-意外令牌<

  11. 11

    AFNetworking从1.x迁移到3.x

  12. 12

    从 rails 4.2 迁移到 5 问题需要降级 ActiveRecord 版本才能使用 1 gem

  13. 13

    将Struts 1标签迁移到Struts 2

  14. 14

    范围属性从Struts1迁移到Struts2

  15. 15

    将Struts 1标签迁移到Struts 2

  16. 16

    从 1.x 迁移到 2.x?

  17. 17

    将 koa v1 迁移到 v2

  18. 18

    迁移到Qualcomm Augmented Reality时的ARCamera问题vuforia-unity-android-ios-3-0-6

  19. 19

    Flutter-索引0、1和2的节点的Firebase RTDB读取问题

  20. 20

    将 Google Endpoint V1 迁移到 V2,将 Java 7 迁移到 Java 8

  21. 21

    将socket.io从0.9.x迁移到1.x,配置RedisStore时遇到问题

  22. 22

    URL重写语法问题R:0,R:1,R:2

  23. 23

    迁移到Swift 3后对Alamofire的成员request()问题的含糊不清的引用

  24. 24

    官方迁移到 v4 后 npm(打字稿)插件的 Ionic v3 问题

  25. 25

    将JavaScript \ Ionic \ Angular 1应用迁移到Typescript \ Ionic 2 \ Angular 2应用

  26. 26

    从AFNetworking 1.3迁移到AFNetworking 2.0的问题

  27. 27

    将数据从mssql迁移到mysql问题

  28. 28

    从Byte Buddy 0.7.7迁移到1.0.2的问题

  29. 29

    从Wagtail 2.7.1迁移到2.7.4的问题

热门标签

归档