gpt4 book ai didi

javascript - MochaJS - 在其他文件中重用 block

转载 作者:行者123 更新时间:2023-12-03 01:19:22 27 4
gpt4 key购买 nike

目前,我正在使用 SuperTest 来测试 API,对于每个请求,我需要从管理员用户获取访问 token ,因此我创建了此请求(工作正常):

authenticate.js

const request = require('supertest');

var storeAccessToken;

describe ('POST /Authenticate', function() {
it ('Should return access token', function(done) {
request('http://myendpoint.com')
.post('/TokenAuth/Authenticate')
.send({
"username": "admin",
"password": "admin"})
.end(function(err, res) {
if (err) return done(err);
storeAccessToken = res.body.result.accessToken;
done();
});
});
});

现在我已经存储了访问 token (变量storeAccessToken),我需要在另一个的before()中调用相同的代码文件。

getKpiRequest.js

const request = require('supertest');

var storeAccessToken;

describe ('GET /Kpi/Availables', function() {

before(function (done){
request('http://myendpoint.com')
.post('/TokenAuth/Authenticate')
.send({
"username": "admin",
"password": "admin"})
.end(function(err, res) {
if (err) return done(err);
storeAccessToken = res.body.result.accessToken;
assert.equal(res.status, 200);
done();
});
});
});

如何避免重复getKpiRequest.js文件中的代码?

最佳答案

您可以在另一个文件中定义身份验证函数,然后将其导入到测试文件中

// common.js
function authenticate() {

return request('http://myendpoint.com')
.post('/TokenAuth/Authenticate')
.send({
"username": "admin",
"password": "admin"})
.then((res) => {
assert.equal(res.status, 200);
return res.body.result.accessToken;
});
}

module.exports = {
authenticate
}
// authenticate.js 

const request = require('supertest');
const authenticate = require('./common').authenticate;

var storeAccessToken;

describe ('POST /Authenticate', function() {
it ('Should return access token', function(done) {
authenticate().then((token) => {
storeAccessToken = token;
done();
}).catch(done);
});
});
// getKpiRequest.js

const request = require('supertest');
const authenticate = require('./common').authenticate;

var storeAccessToken;

describe ('GET /Kpi/Availables', function() {

before(function (done){
authenticate()
.then((token) {
storeAccessToken = token;
done();
}).catch(done);
});
});

保持函数通用,以便可以重用它

关于javascript - MochaJS - 在其他文件中重用 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51833932/

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