首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试异步函数. JEST

测试异步函数. JEST
EN

Stack Overflow用户
提问于 2021-08-25 18:52:26
回答 1查看 63关注 0票数 0

代码-1:

代码语言:javascript
复制
describe("testing server functionalities", () => {
    
    // test case
    it("server handles a function", () => {
        request('some link', (error, response, body) => {
            var expected = "1410";
            expect(expected).to.be.equal(body);
        })
    })

});

代码-2:

代码语言:javascript
复制
describe("testing server functionalities", () => {
    
    // test case
    it("server handles a function", (done) => {
        request('some link', (error, response, body) => {
            var expected = "1410";
            expect(expected).to.be.equal(body);
            done();
        })
    })

});

因此,在Code-1中,由于请求调用是异步的,所以在检查value是否满足expected value之前,我们遇到了测试退出的问题。

为了处理这个问题,我找到了一种方法,在done中引入的参数Code-2使测试函数等待done()函数的调用,这最终使测试函数正常工作。

但是我不知道Code-2是如何工作的,为什么测试函数要等待done

有人能帮我吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-25 19:43:37

Here,您可以看到我们如何知道函数需要哪些参数。

这是最简单的。

另外,还可以通过将JS-文件解析为抽象语法树(AST)来获得这些参数。

然后,就可以很容易地创建不同的逻辑。

让我们想象一下它的外观(抽象为):

代码语言:javascript
复制
// Some testing framework code
const shouldWaitUntilDone = testcase.hasDoneCallback();

if (shouldWaitUntilDone) {
  // Callback will run when done() is called
  testcase.run(() => { testcase.runMatchers(); }) 
} else {
  testcase.run().runMatchers();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68928422

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档