如何使Dotenv和Nock一起工作?

时间:2019-09-16 10:05:20

标签: javascript nock dotenv

当前在我的一个应用程序中,我正在使用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

1 个答案:

答案 0 :(得分:0)

我的问题已解决。 解决方案:我必须从脚本中删除dotenv软件包。在任何需要的地方,都必须替换为

process.env = Object.assign(process.env, 
    { DEMO_VARIABLE_ONE: 'false' },
    { DEMO_VARIABLE_ONE_URL: 'value' },
    { DEMO_VARIABLE_TWO: 'value' }
);