当前位置: 首页 > 知识库问答 >
问题:

jasmine如何使用异步测试

谢同化
2023-03-14

全部:

我对Jasmine测试非常陌生,我想知道的一个关于异步测试的问题是:

有谁能简单解释一下Jasmine是如何知道里面有一个done()函数调用并等待它完成的?

例如,如果我把一些异步调用在之前:

var flag = false;
beforeEach(function(done){
    setTimeout(function(){
        // some task here
        flag = true;
        done();
    }, 3000)
})

it("Should be true if the async call has completed", function () {
    expect(flag).toEqual(true);
});

Jasmine怎么知道它应该让it规范测试等待?

谢谢

共有1个答案

阎辰钊
2023-03-14

Jasmine知道这一点,因为你提供了已完成的论证。如果没有异步调用,则应省略done参数

beforeEach(function(){
    nonAsyncMethod();
})
 类似资料:
  • 我正在尝试用Jasmine和RequireJS做一些测试。一切都进行得很好,直到我注意到我所描述的函数的上下文出现了问题。 有人知道怎么解决这个吗?

  • 我试图为我编写的一些代码编写单元测试,遇到的问题是我希望在执行函数后调用模拟回调,但我的测试失败,因为它从未被调用。 正在测试的功能非常简单: 我怀疑的问题是,由于请求的异步性质,jasmine在API调用中执行模拟回调之前测试期望值。我尝试过使用其他人建议使用的done()和flags,但没有成功。希望能在这方面提供一些指导。

  • jasmine:在jasmine指定的超时内没有调用异步回调。DEFAULT_TIMEOUT_INTERVAL 测试window.post消息指令 用Jasmine async测试postMessage不起作用 我有下面的代码,我正在接收下面的输出。 在jasmine.DEFAULT\u timeout\u INTERVAL指定的超时内未调用异步回调 myService在父描述函数中定义。正如我所

  • 问题内容: 我只想在不引导Angular的情况下测试服务。 我看了一些例子和教程,但是我什么也不会去。 我只有三个文件: myService.js:在这里定义AngularJS服务 test_myService.js:在这里定义服务的Jasmine测试。 specRunner.html:一个具有常规茉莉花配置的HTML文件,在其中导入了前两个其他文件以及茉莉花,Angularjs和angular-

  • 问题 假如你正在使用 CoffeeScript 写一个简单地计算器,并且想要验证其功能是否与预期一致。可以使用 Jasmine 测试框架。 讨论 在使用 Jasmine 测试框架时,你要在一个参数(spec)文档中写测试,文档描述的是代码需要测试的预期功能。 例如,我们希望计算器可以实现加法和减法的功能,并且可以正确进行正数和负数的运算。我们的 spec 文档如下列所示。 # calculator

  • 问题内容: 您如何测试使用JUnit触发异步流程的方法? 我不知道如何让我的测试等待过程结束(这不完全是单元测试,它更像是集成测试,因为它涉及多个类,而不仅仅是一个类)。 问题答案: 恕我直言,让单元测试创​​建或在线程上等待是不好的做法。您希望这些测试能在几秒钟内运行。这就是为什么我想提出一种分两步的方法来测试异步过程。 测试您的异步过程是否已正确提交。您可以模拟接受异步请求的对象,并确保提交的