close
logo
Rstest
指南
配置
API
English
简体中文
指南
配置
API
English
简体中文
logo
Rstest
Overview

Test API

Expect
Test
Describe
Hooks

Rstest Utility

Mock modules
Mock functions
MockInstance
Fake timers
Utilities
📝 在 GitHub 上编辑此页
上一页Fake timers

#Utilities

一些实用的工具函数。

#rstest.stubEnv

  • 别名: 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();

#rstest.unstubAllEnvs

  • 别名: rs.unstubAllEnvs

  • 类型: () => Rstest

恢复所有通过 rstest.stubEnv 更改的环境变量到原始值。

  • 测试后调用此方法以清理环境变量。
  • 如果配置项 unstubEnvs 启用,则每个测试前会自动调用。

示例:

rstest.stubEnv('NODE_ENV', 'test');
// ... 执行相关代码
rstest.unstubAllEnvs();
expect(process.env.NODE_ENV).not.toBe('test');

#rstest.stubGlobal

  • 别名: 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');

#rstest.unstubAllGlobals

  • 别名: rs.unstubAllGlobals

  • 类型: () => Rstest

恢复所有通过 rstest.stubGlobal 更改的全局变量到原始值。

  • 测试后调用此方法以清理全局变量。
  • 如果配置项 unstubGlobals 启用,则每个测试前会自动调用。

示例:

rstest.stubGlobal('myGlobal', 123);
// ... 执行相关代码
rstest.unstubAllGlobals();
expect(globalThis.myGlobal).toBeUndefined();

#rstest.setConfig

  • 别名: 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(); // 恢复默认配置

#rstest.resetConfig

  • 别名: rs.resetConfig

  • 类型: () => void

将通过 rstest.setConfig 修改的运行时配置重置为默认值。