【问题标题】:Jasmine it ends before its contents [closed]茉莉花在其内容之前结束[关闭]
【发布时间】:2015-11-23 00:35:02
【问题描述】:

我正在使用带有 minijasminenode 1.0 的量角器。 我有一个很长的休息电话(上传文件)。
我将返回 protractor.promise.defer()defer.resovle() 以标记脚本上传的开始和结束。
但有时包含调用的它在其余调用完成之前结束,我可以验证响应。 它在报告中导致虚假信息,因为它失败了。

【问题讨论】:

  • 你可能在你没有发布的代码中做错了

标签: javascript node.js jasmine promise protractor


【解决方案1】:

对于异步测试,使用done 回调通知 jasmin 我的测试已经完成。否则它将在实际异步回调完成之前完成。

it("test description", function(done){
     setTimeout(function(){
        // expect something
        done();
     }, 1000);
}); 

例如我们有一个函数可以发送一个 http 请求并获取一些数据。

it("test description", function(done){
     UserService.getUser(1)
     .then(function(data){
          expect(data.name).toBe('Zohaib');
          done(); // I have done with this test 
     });

});

【讨论】:

  • 这仅适用于 Jasmine 2.0。我正在使用茉莉花 1.1。此外,我不确定我们为什么需要它?茉莉花不是一直在等待所有的承诺结束吗?
【解决方案2】:

最后我用Browser.sleep(5000)解决了这个问题,等待上传成功。但我仍然不确定为什么它不等待承诺完成

【讨论】:

    猜你喜欢
    • 2011-10-26
    • 2014-12-12
    • 1970-01-01
    • 2019-07-02
    • 2018-02-22
    • 2016-10-14
    • 2015-07-26
    • 1970-01-01
    • 2023-03-23
    相关资源
    最近更新 更多