javascript - 运行 jest 时设置环境变量

标签 javascript node.js typescript unit-testing jestjs

我在我的 main.ts 上定义了这个变量

const mockMode = process.env.MOCK_MODE;

我只是创建了一个测试并将这个变量设置为 true,但在 main 上没有得到 'true' , 但是 'false'
describe('onBook', () => {

    // Arrange
     const mockMode = "true";
     ...

最佳答案

您可以设置process.env.MOCK_MODE的值直接在单元测试用例中,并在最后将其恢复为原始值。

例如。
main.ts :

export function main() {
  const mockMode = process.env.MOCK_MODE;
  return mockMode;
}
main.test.ts :

import { main } from './main';

describe('main', () => {
  it('should pass', () => {
    const original = process.env.MOCK_MODE;
    process.env.MOCK_MODE = 'true';
    const actual = main();
    expect(actual).toBe('true');
    process.env.MOCK_MODE = original;
  });
  it('should restore MOCK_MODE', () => {
    expect(process.env.MOCK_MODE).toBe('undefined');
  });
});

单元测试结果:

 PASS  src/stackoverflow/59319610/main.test.ts (14.207s)
  main
    ✓ should pass (7ms)
    ✓ should restore MOCK_MODE (1ms)

Test Suites: 1 passed, 1 total
Tests:       2 passed, 2 total
Snapshots:   0 total
Time:        16.293s

关于javascript - 运行 jest 时设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59319610/

相关文章:

javascript - 使用 angularJS 获取 Json 文件

mysql - 将 findall 与计算每个父级的每个关系子级进行 Sequelize

mysql - 在将此插入写入查询时需要一些帮助,什么是有效的方法?

javascript - 使用正弦和余弦从二维坐标创建球体

javascript - 动态创建 javascript 对象(Backbone View)

typescript - Vue CLI 的类型检查服务忽略内存限制

javascript - Angular 树组件不显示任何节点

angular - 在 Angular 4 中等待订阅和 promise

javascript - 有没有办法获得three.js的最小/精简版

javascript - 替换 url 中变量的值