一些实用的工具函数。
别名: rs.stubEnv
类型: (name: string, value: string | undefined) => Rstest
临时设置 process.env 和 import.meta.env 中的环境变量为指定值。适用于测试依赖环境变量的代码。
value 为 undefined,该变量会从 process.env 和 import.meta.env 中移除。rstest.unstubAllEnvs() 可恢复所有通过此方法更改的环境变量。示例:
rstest.stubEnv('NODE_ENV', 'test');
expect(process.env.NODE_ENV).toBe('test');
expect(import.meta.env.NODE_ENV).toBe('test');
rstest.stubEnv('MY_VAR', undefined);
expect(process.env.MY_VAR).toBeUndefined();
expect(import.meta.env.MY_VAR).toBeUndefined();别名: rs.unstubAllEnvs
类型: () => Rstest
恢复所有通过 rstest.stubEnv 更改的环境变量到原始值。
unstubEnvs 启用,则每个测试前会自动调用。示例:
rstest.stubEnv('NODE_ENV', 'test');
// ... 执行相关代码
rstest.unstubAllEnvs();
expect(process.env.NODE_ENV).not.toBe('test');别名: rs.stubGlobal
类型: (name: string | number | symbol, value: unknown) => Rstest
临时设置全局变量为指定值。适用于模拟全局对象或函数。
rstest.unstubAllGlobals() 可恢复所有通过此方法更改的全局变量。示例:
rstest.stubGlobal('myGlobal', 123);
expect(globalThis.myGlobal).toBe(123);
rstest.stubGlobal(Symbol.for('foo'), 'bar');
expect(globalThis[Symbol.for('foo')]).toBe('bar');别名: rs.unstubAllGlobals
类型: () => Rstest
恢复所有通过 rstest.stubGlobal 更改的全局变量到原始值。
unstubGlobals 启用,则每个测试前会自动调用。示例:
rstest.stubGlobal('myGlobal', 123);
// ... 执行相关代码
rstest.unstubAllGlobals();
expect(globalThis.myGlobal).toBeUndefined();别名: rs.setConfig
类型:
type RuntimeConfig = {
testTimeout?: number;
hookTimeout?: number;
clearMocks?: boolean;
resetMocks?: boolean;
restoreMocks?: boolean;
maxConcurrency?: number;
retry?: number;
};
type SetConfig = (config: RuntimeConfig) => void;动态更新当前测试的运行时配置。适用于需要在单个测试文件中临时覆盖某些测试设置(如超时时间、并发数、mock 行为等)的场景。
示例:
rstest.setConfig({ testTimeout: 1000, retry: 2 });
// ... 在新的配置下运行代码
rstest.resetConfig(); // 恢复默认配置别名: rs.resetConfig
类型: () => void
将通过 rstest.setConfig 修改的运行时配置重置为默认值。
别名: rs.getConfig
类型: () => RuntimeConfig
获取当前测试文件的运行时配置。
示例:
const config = rstest.getConfig();
console.log(config);