当前在我的一个应用程序中,我正在使用nock模拟我的api请求。不幸的是,在同一项目的另一个测试文件中,我使用了dotenv。如果我使用dotenv,我的nock没有在模拟URL,那是在使用原始的api请求。 任何建议或帮助表示赞赏。 我的测试文件
'use strict';
const assert = require('assert');
const nock = require('nock');
describe('example', () => {
afterEach(async() => {
nock.cleanAll();
});
describe("checktest", () => {
it("checksomeupdate", async() => {
nock('http://example.com')
.get('/demend-point')
.reply(200, {
x: 1
})
const result = await demoCallToMainFileMetho();
const [a, b] = result || []; // response array [1,2,3]
assert.ok(a.includes('1'));
});
});
});
我在测试目录中的其他文件
require('dotenv').config();
.....some code
答案 0 :(得分:0)
我的问题已解决。 解决方案:我必须从脚本中删除dotenv软件包。在任何需要的地方,都必须替换为
process.env = Object.assign(process.env,
{ DEMO_VARIABLE_ONE: 'false' },
{ DEMO_VARIABLE_ONE_URL: 'value' },
{ DEMO_VARIABLE_TWO: 'value' }
);