Jest - 模拟 `config` 模块

时间:2021-07-29 16:14:43

标签: unit-testing jestjs

我正在编写一个单元测试,我想模拟调用 config 时返回的值。

在模块中,我多次调用 config,并想模拟其中一个调用的返回值:

import config from 'config';

const REGION: string = config.get('AWS_DYNAMODB_REGION');
const ENDPOINTS: (string | undefined)[] = config.get('AWS_DYNAMODB_ENDPOINTS');
const CLIENT_TIMEOUT: number = config.get('AWS_DYNAMODB_CLIENT_TIMEOUT');

例如,我如何模拟 config.get('AWS_DYNAMODB_CLIENT_TIMEOUT') 的返回值。

请指教。

1 个答案:

答案 0 :(得分:0)

解决方法如下:

jest.mock('config');
import config from 'config';

let configGetSpy: jest.SpyInstance;

configGetSpy = jest.spyOn(config, 'get');
    configGetSpy
      .mockReturnValueOnce('AWS_DYNAMODB_REGION')
      .mockReturnValueOnce([])
      .mockReturnValueOnce(1001)
      .mockReturnValueOnce(false)
      .mockReturnValueOnce(false);