jest在已有项目中的安装与使用
创始人
2024-03-20 12:56:37

简单的jest使用配置:

npm init -y
npm i jest@24.8.0 -Dnpx jest --init 生成初始化配置
一个index文件,里面可以写入一些方法,作为测试这个jest.config.js是自动生成的!!!!!
index.test.js就是些测试用例的文件。jest会自动的查找执行。执行这个npm run test
这个就会执行测试用例。
当测试用例是一个ts文件的时候:添加这个参数类型限制就会出错,暂时不知道是为啥
可以在tsconfig.json里加上"noImplicitAny": false,先跳过这测试过程中的报错。执行代码覆盖率代码
npx jest --coverage
会生成报告显示到文件夹中这个测试集合。
配置一下:在package。json中写:"coverage":"jest --coverage"
可以执行这个:npm run coverage或者yarn coveragejest初始你初始时只支持commonjs语法,后面的es6语法需要配置。
yarn add @babel/core@7.4.5 @babel/preset-env@7.4.5 --dev

添加转换器:
.babelrc文件。(根)

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

执行就是:

npm run test // "test": "jest --watchAll",
npm run  coverage//需要配置"coverage": "jest --coverage"
yarn coverage//需要配置"coverage": "jest --coverage"

执行测试用例

// const {fun} = require("../src/other/index");
import {fun} from "../src/other/index"
test("测试第一个函数",()=>{expect(fun(30)).toBe(30)
})

以上用例就可以实现对ts函数和js函数的基本测试用例的实现。

组件的测试用例,必须考虑到使用vue的一些测试开发依赖。


项目转到系统控制台执行:vue add @vue/cli-plugin-unit-jest
配置:
jest.config.js文件

module.exports = {preset: '@vue/cli-plugin-unit-jest/presets/typescript-and-babel',coverageDirectory: "coverage",//代码覆盖率生成的文件夹名clearMocks: true,//清除数据
}

测试一个函数的报错显示
在这里插入图片描述

  • 通过这个describe意思为套件,或者理解为创建一个测试集
  • it 断言
  • expect 期望
  • test 测试,类似it
    在这里插入图片描述
    expect(wrapper.text()).toMatch(“我爱你”)
    expect(wrapper.text()).toEqual(“我爱你”)
describe('HelloWorld.vue', () => {it('renders props.msg when passed', () => {const wrapper = mount(HelloWorld); //Mount获取组件的包裹器,可以理解Wie就是最外层的那个div的加强版。console.log(wrapper.text());//输出这个组件的所有的文字内容值expect(wrapper.text()).toMatch("我爱你") /* 判断期望值符合这个正则选项否 */})
})

vue-property-decorator使用方法如下:
https://zhuanlan.zhihu.com/p/191443950
在这里插入图片描述
对组件中的某个功能进行验证。

  • wrapper.text()//输出这个组件的所有的文字内容值
  • wrapper.vm.count//访问实际的 Vue 实例
  • wrapper.contains('button')//检测是存在button按钮
  • wrapper.find() 定位该按钮,此方法返回一个该按钮元素的包裹器
  • 包裹器调用 .trigger() 来模拟点击。

参考


测试包含有element组件的。vue文件

import { shallowMount,mount,createLocalVue } from '@vue/test-utils'
import ElementUI from 'element-ui';
const localVue = createLocalVue();
localVue.use(ElementUI);import other from "../../../src/components/other.vue"
describe('第二个文件测试', () => {it('测试other组件', () => {const wrapper = mount(other)expect((wrapper.vm as any).data).toEqual(123)})it('测试是否有el-button按钮',()=>{const wrapper = shallowMount(other,{localVue});const el_btn = wrapper.find('#el_btn');expect(el_btn.exists()).toBe(true)})
})

相关内容

热门资讯

埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...
demo什么意思 demo版本... 618快到了,各位的小金库大概也在准备开闸放水了吧。没有小金库的,也该向老婆撒娇卖萌服个软了,一切只...
埃菲尔铁塔在哪 中国仿建埃菲尔... 2019年4月26日,广西南宁市,街头惊现一座巨型山寨版埃菲尔铁塔,高约20米,白色塔身,造型逼真,...
苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...