在Node.js项目中使用Jest进行测试时,如果你希望使用ES6模块和相对路径导入,你需要进行一些配置。以下是一个详细的步骤指南,帮助你设置和使用ES6模块和相对路径导入。
首先,确保你已经初始化了一个Node.js项目。如果还没有,可以使用以下命令:
npm init -y
安装Jest和Babel相关的依赖:
npm install --save-dev jest babel-jest @babel/core @babel/preset-env
在项目根目录下创建一个.babelrc
文件,并添加以下内容:
{
"presets": ["@babel/preset-env"]
}
在项目根目录下创建一个jest.config.js
文件,并添加以下内容:
module.exports = {
transform: {
'^.+\\.js$': 'babel-jest',
},
moduleFileExtensions: ['js', 'json', 'jsx', 'node'],
moduleDirectories: ['node_modules', 'src'],
};
假设你的项目结构如下:
/project-root
/src
/utils
math.js
index.js
/tests
math.test.js
package.json
jest.config.js
.babelrc
src/utils/math.js
:
export const add = (a, b) => a + b;
export const subtract = (a, b) => a - b;
src/index.js
:
import { add, subtract } from './utils/math';
console.log(add(2, 3)); // 5
console.log(subtract(5, 2)); // 3
tests/math.test.js
:
import { add, subtract } from '../src/utils/math';
test('adds 2 + 3 to equal 5', () => {
expect(add(2, 3)).toBe(5);
});
test('subtracts 5 - 2 to equal 3', () => {
expect(subtract(5, 2)).toBe(3);
});
package.json
在package.json
中添加一个脚本来运行Jest:
{
"scripts": {
"test": "jest"
}
}
使用以下命令运行测试:
npm test
.babelrc
文件中配置了@babel/preset-env
,以便Babel可以转换ES6代码。jest.config.js
文件中配置了transform
,以便Jest使用babel-jest
来处理JavaScript文件。moduleDirectories
配置项允许你使用相对路径导入模块。示例代码:
src/utils/math.js
中定义了两个简单的函数add
和subtract
。src/index.js
中导入并使用了这些函数。tests/math.test.js
中编写了测试用例,使用Jest的test
和expect
函数来验证add
和subtract
函数的行为。领取专属 10元无门槛券
手把手带您无忧上云