我在我的 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/