javascript - 在運行 jest 時設置環境變量
我在我的 main.ts 中定義了這個變數
const mockMode = process.env.MOCK_MODE;
我剛建立了一個測試並將這個變數設為 true,但在主程式中得到的不是 'true',而是 'false'
describe('onBook', () => {
// Arrange
const mockMode = "true";
...
答案#1
你可以直接在單元測試案例中設置 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
