我在我的main.ts
中定义了这个变量。
const mockMode = process.env.MOCK_MODE;
我只是创建了一个测试,并将此变量设置为true,但在主函数中没有得到"true",而是得到了"false"。
describe('onBook', () => {
// Arrange
const mockMode = "true";
...
我在我的main.ts
中定义了这个变量。
const mockMode = process.env.MOCK_MODE;
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
process.env
是否也会为每个测试进行沙盒处理? - WajahathafterEach
来实现。 - Eric Haynes
globals
选项。请参阅以下链接:https://jestjs.io/docs/en/configuration#globals-object - kmos.w