可以使用jest.mock模拟.env文件吗?

时间:2019-06-18 13:20:54

标签: javascript jestjs

可以使用.env模拟jest.mock文件吗?也许js仅适用于常规js模型(js文件)

我的tests/test.spec.ts

jest.mock('../.env')

description(...

1 个答案:

答案 0 :(得分:1)

您可以对在jest.mock()require的实现中使用的任何文件使用import

但是由于您可能没有import/require .env文件,您可能想要修改一些环境变量,其中beforeAll确实很方便。

例如:

import func from 'module';

describe('environment dependant function', () =>{ 
  describe('development', () => {
    beforeAll(() => {
      process.env.NODE_ENV = 'development'
    });

    it('should report development', () => {
      expect(func()).toEqual('You are on DEV');
    });
  });

  describe('production', () => {
    beforeAll(() => {
      process.env.NODE_ENV = 'production'
    });

    it('should report development', () => {
      expect(func()).toEqual('You are on PROD');
    });
  });
});