如何测试别名导入

时间:2018-08-07 16:36:31

标签: reactjs unit-testing jestjs

如果我有类似的东西:

import { buildPath as buildSRPPath } from '@/router/srp-routes';

我是否像这样嘲笑

jest.mock('@/router/srp-routes', () => ({
  buildPath: jest.fn()
}));

还是我需要buildSRPPath

1 个答案:

答案 0 :(得分:1)

jest.mock用模拟替换模块,因此模拟应包含模块导出的内容。

示例:

// ---- lib.js ----
export const func = () => {
  return 'func called';
}



// ---- code.js ----
import { func as somethingElse } from './lib';

export const useFunc = () => {
  return somethingElse();
}



// ---- code.test.js ----
import { useFunc } from './code';

jest.mock('./lib', () => ({
  func: () => 'mocked func'  // mock 'func' since that is what lib exports
}));

test('useFunc', () => {
  expect(useFunc()).toBe('mocked func');  // PASSES
});

因此,根据您的情况,您可以正确使用buildPath