gpt4 book ai didi

javascript - 避免在 Mocha 测试的 Elasticsearch 请求中使用 setTimeout()

转载 作者:行者123 更新时间:2023-12-02 22:29:22 25 4
gpt4 key购买 nike

我正在使用 Mocha 框架为 API 编写单元测试,我的 API 使用 elasticsearch。

在本例中,我正在编写一个后测试并在之后删除它(在 after 中)。

这里的问题是,当delete运行时,这些值还不存在于数据库中。如果我将删除请求包装在 setTimeout() 中,如下所示,它可以正常工作。

在这种情况下如何避免使用 setTimeout()

describe('POST New Group', function() {
this.timeout(MOCHA_TIMEOUT)
const optionsPost = {
'method': 'POST',
'uri': `http://localhost/groups`,
'json': true,
'body': {
"name": "Test",
"desc": "Lorem ipsum dolore",
"games": []
}
}
const optionsDelete = {
'method': 'DELETE',
'uri': `http://localhost/groups/Test`,
'json': true
}

after(function() {
console.log("Started delete")

setTimeout(() => {
request.delete(optionsDelete, (err, res, body) => {
console.log("Finished delete")
assert.equal(res.statusCode, 200)
})
}, 1000)


})

it('Should return success message with the status code \'201 Created\'', function(done) {
console.log("Started post")
request.post(optionsPost, (err, res, body) => {
console.log("Finished post")
assert.equal(body.status, 'Group created')
assert.equal(res.statusCode, 201)
done()
})
});
});

最佳答案

更好的选择是在索引时设置{"refresh": true}。这告诉elasticsearch在索引时刷新它并使数据可用。因此,在您的情况下,您不需要在发布和删除之间进行额外的刷新 api 调用

关于javascript - 避免在 Mocha 测试的 Elasticsearch 请求中使用 setTimeout(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58958850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com