在测试测试文件中未定义模块导入

时间:2020-08-26 19:33:27

标签: javascript unit-testing jestjs

我正在尝试用笑话对实用程序文件(util.js)进行单元测试,并且文件看起来像这样,

// utils.js

import { something } from '@whatever/nothing';

export const myMethod = (parameter) => {

    if (!something ) return 0;
    return something.length + parameter.length;
};

// utils.test.js

import { myMethod } from '../utils';

    test('myMethod', () => {
        expect(myMethod('whatever').toEqual(12);
    });

某物是导出的模块,其值为'temp'。

我运行测试文件时, 某些东西 总是 未定义 ,并最终返回{{1} }。在测试文件中模拟模块“ 0”并使其在测试运行中可用的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

模拟something的方式是:

import { something } from '@whatever/nothing';
import { myMethod } from '../utils';

jest.mock('@whatever/nothing');
something.mockReturnValue('temp');

test('myMethod', () => {
  expect(myMethod('whatever').toEqual(12);
});

jest.mock('@whatever/nothing');创建模块的模拟。

something.mockReturnValue('temp');创建将要包含在某些内容中的返回值。