JEST测试Vue2+elementui项目

参考文档:
https://v1.test-utils.vuejs.org/zh/
https://www.jestjs.cn/jest中文文档
第一步安装
@vue/test-utils要指定1.0的版本,否则是vue3的

npm install -D jest vue-jest babel-core babel-jest @vue/vue2-jest jsdom @babel/preset-env jsdom-global @vue/test-utils@1.0.3

如果提示babel-core版本低,则升级为7.0以上,安装如下命令:

npm install --save-dev babel-core@^7.0.0-bridge.0

如果vue-template-compiler报错,请升级为2.7版本。

npm uninstall vue-template-compiler
npm i vue-template-compiler@2.7.11

第二步 配置
1 根目录新建jest.config.js

const path = require('path');
module.exports = {
  rootDir: path.resolve(__dirname, './'), // 根据自己项目来
  moduleFileExtensions: [
    "js",
    "json",
    "vue"
  ],
  transformIgnorePatterns: ["/node_modules/"],
  testEnvironment: "node",
  collectCoverage: true,
  collectCoverageFrom: [
    "**/src/components/**/*.{js,vue}"
  ],
  testRegex: '(/tests/unit/.*\\.(test|spec))\\.[tj]sx?$',//测试文件的地址配置
  transform: {
    "^.+\\.js$": "<rootDir>/node_modules/babel-jest",//告诉 Jest 用 babel-jest 处理 JavaScript 测试文件
    ".*\\.(vue)$": "<rootDir>/node_modules/vue-jest"//告诉 Jest 用 vue-jest 处理 .vue 文件
  },
  moduleNameMapper:{
    "^@/(.*)$": "<rootDir>/$1"
  },     
  setupFiles: ['<rootDir>jest.setup.js'], //启动jest需要的文件
  testEnvironmentOptions: {
    url: "http://localhost"
  }
};

2 根目录新建jest.setup.js

require('jsdom-global')();

3 根目录新建tests/utils/xxx.test.js
然后就可以在xxx.test.js写测试案例了。
例如:

// jest是执行测试用例的工具,运行npm run test,就会找到所有的.test.js文件并行执行。
// 想要测试某个组件,直接引入该组件,然后编写测试用例代码
// 想要测试某个js方法也可以。

import { createLocalVue, shallowMount } from '@vue/test-utils';
import ElementUI from 'element-ui';
const localVue = createLocalVue();
localVue.use(ElementUI);
import DetailField from '@/src/views/UopBusiFront/JreEngine/FieldManage/DetailField';
describe('DetailField', () => {
  it('有el-dialog', () => {
    const wrapper = shallowMount(DetailField, {localVue});
    const elForm = wrapper.find('el-dialog');
    expect(elForm.exists()).toBe(true);
  })
})

4 package.json配置

"test": "jest"

5 babel.config.js

module.exports = {
  presets: [
    [
      "@babel/preset-env",
      {
          "targets": {
              "node": "current"
          }
      }
    ]
  ]
}

配置完成后,运行npm run test即可测试。

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue3 + TypeScript 是一种常用的前端开发技术组合,它结合了Vue框架的便捷性和TypeScript的类型检查能力,可以提高项目的可维护性和开发效率。下面是一些Vue3 + TypeScript项目经验的介绍: 1. 项目初始化:使用Vue CLI创建一个Vue3项目,并选择TypeScript作为项目的语言。这样可以自动生成一些基本的配置和文件结构,方便快速开始开发。 2. 类型定义:在Vue3 + TypeScript项目中,可以使用TypeScript的类型系统来定义组件的props、data、computed等属性的类型,以及事件的参数类型等。这样可以在编码过程中及早发现潜在的类型错误,提高代码的健壮性。 3. 组件开发:在Vue3 + TypeScript项目中,可以使用装饰器(decorators)来定义组件选项,例如使用@Prop来定义props属性的类型,使用@Emit来定义事件的参数类型。这样可以更清晰地描述组件的接口和行为。 4. 路由管理:在Vue3 + TypeScript项目中,可以使用Vue Router进行路由管理。通过定义路由的类型和参数类型,可以在编码过程中获得更好的类型提示和错误检查。 5. 状态管理:在Vue3 + TypeScript项目中,可以使用Vuex进行状态管理。通过定义状态的类型和操作的参数类型,可以提高代码的可读性和可维护性。 6. 第三方库的使用:在Vue3 + TypeScript项目中,可以使用第三方库,并为其编写类型声明文件,以获得更好的类型检查和代码提示。例如,可以使用axios发送HTTP请求,并为其编写类型声明文件,以确保请求参数和响应数据的类型正确。 7. 单元测试:在Vue3 + TypeScript项目中,可以使用Jest测试框架进行单元测试。通过编写类型安全的测试用例,可以提高代码的质量和可靠性。 8. 构建和部署:在Vue3 + TypeScript项目中,可以使用Webpack等构建工具进行项目的打包和优化。通过配置合适的TypeScript编译选项和Webpack插件,可以生成高效的生产环境代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值