javascript - 如何让 Dotenv 和 Nock 协同工作?
问题描述
目前在我的一个应用程序中,我正在使用 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
解决方案
我的问题已解决。解决方案:我必须从我的脚本中删除 dotenv 包。我需要的地方我必须替换为
process.env = Object.assign(process.env,
{ DEMO_VARIABLE_ONE: 'false' },
{ DEMO_VARIABLE_ONE_URL: 'value' },
{ DEMO_VARIABLE_TWO: 'value' }
);
推荐阅读
- python - Python中的替换密码与字母映射
- powerbi - Power BI 多维模型支持
- c# - OnPointerEnter 未被调用
- c++ - c ++中的二维整数数组,每行元素个数奇数
- python - 无法使用 BeautifulSoup 获取跨度属性的文本
- angular - 带有外部拖动元素的 angular-cdk-nested-drag-drop-demo
- ansible - 在 Ansible 角色中管理不受支持的发行版的最佳方法是什么?
- logstash - 解析夏令时开始时的logstash dateparsefailure
- android - 广播接收器在冰淇淋三明治 4.0.3 上不起作用
- .net - .Net Core 3 - api - 根据 URL 请求输出 XML 和 JSON 格式(.xml、.json)