使用 Typescript、Jest 和 React 测试库设置 Next.js
为什么?
Next.js是一个超酷的 React 框架,它能为你带来卓越的开发者体验。在本期节目中,我将向你展示如何使用 Typescript、Jest 和 React 测试库来设置它。
设置
要设置项目,我们需要遵循以下步骤:
- 要创建下一个应用程序,请从终端运行
npx create-next-app
- 安装 typescript 以及 react 和 node 类型
npm install typescript @types/react @types/node -D
- 安装 jest、react 测试库、babel-jest、@testing-library/jest-dom 和 jest 类型
npm i jest @testing-library/react @types/jest babel-jest @testing-library/jest-dom @testing-library/user-event @testing-library/dom -D
- 为 typescript 和 babel 创建配置文件
touch tsconfig.json
touch .babelrc
- 添加到 babel 配置文件
{
"presets": ["next/babel"]
}
- 创建
jest.config.js
和jest.setup.ts
文件
// jest.config.js
module.exports = {
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
testPathIgnorePatterns: ['<rootDir>/.next/', '<rootDir>/node_modules/'],
};
// jest.setup.ts
import '@testing-library/jest-dom';
- 启动应用程序以便接下来可以配置 typescript
npm run dev
奖金
如果您要使用 CSS 模块,请确保还包含以下步骤:
npm i identity-obj-proxy -D
- 更新
jest.config.js
文件使其看起来像这样
module.exports = {
setupFilesAfterEnv: ['<rootDir>/jest.setup.ts'],
testPathIgnorePatterns: ['<rootDir>/.next/', '<rootDir>/node_modules/'],
moduleNameMapper: {
'\\.(scss|sass|css)$': 'identity-obj-proxy',
},
};
现在我们已经准备好了,您可以开始将您的组件从.js
更改为.tsx
并构建您的精彩应用程序。