jest在已有项目中的安装与使用

news2024/11/13 14:56:40

简单的jest使用配置:

npm init -y
npm i jest@24.8.0 -D

npx 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 coverage

jest初始你初始时只支持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)
  })
})


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/64539.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二十五章《图书管理系统》第1节:图书管理系统简介

图书管理系统具有图书信息管理、读者信息管理和借阅信息管理三大功能模块,本小节将从软件功能、数据库系统设计和项目结构几个方面介绍该软件系统的设计方案。 25.1.1系统功能简介 图书管理系统第一大功能模块是图书信息管理,这个模块的软件界面如图25-1所示。 图25-1图书信…

2011-2019年全国30省绿色经济发展指数和子指数数据

2011-2019年全国30省绿色经济发展指数和子指数数据 1、时间:2011-2019年 2、来源:绿色发展指数BG——区域比较 3、范围:包括全国30个省份不包括西藏 4、指标包括:总指标—绿色化指数、经济增长绿化度指数、资源环境承载潜力指…

1.4 Apache Hadoop完全分布式集群搭建-hadoop-最全最完整的保姆级的java大数据学习资料

文章目录1.4 Apache Hadoop 完全分布式集群搭建1.4.1 虚拟机环境准备1.4.2 集群规划1.4.3 安装Hadoop1.4.3.1 集群配置1.4.3.1.1 HDFS集群配置1.4.3.1.2 MapReduce集群配置1.4.3.1.3 Yarn集群配置1.4.3.2 分发配置1.4.4 启动集群1.4.4.1 单节点启动1.4.4.2 集群群起1.4.4.3 Had…

3D目标检测总结

3D目标检测最主要的应用领域是自动驾驶,主流用的传感器是camera和lidar, 一般车上也会配备很多radar, 但是在检测中一般很少用到radar。 除了特斯拉坚决不用lidar, 只基于纯视觉做自动驾驶感知, 大多数的自动驾驶感知…

Java---网络编程

特点:数据被限制在64kb以内,超出这个范围就不能发送了。 数据报(Datagram):网络传输的基本单位 。 TCP 传输控制协议 (Transmission Control Protocol)。TCP协议是面向连接的通信协议,即传输数据之前,在发送端和接收…

联邦学习论文分析1----联邦学习_功率分配_频带分配_传输速率_能耗

目录一、文章概述二、系统模型环境三、上行链路功率分配(UPA)算法1.系统目标2.约束条件3.公式推导(1)传输时间(2)系统能耗4.算法求解5.伪代码四、频带分配(BA)算法1.系统目标2.约束条件3.算法求解五、性能表征本文是对论文《Multi-Server Federated Edge Learning for Low Powe…

[附源码]JAVA毕业设计南京传媒学院门户网(系统+LW)

[附源码]JAVA毕业设计南京传媒学院门户网(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技…

【计算机网络】数据链路层:虚拟局域网

以太网包含的计算机太多时,带来问题: (1)广播风暴 一个以太网是一个广播域(广播域中任何一台设备发出的广播通信都能被该部分网络中的其他所有设备所接收) 在交换机的交换表的建立过程中要使用许多广播域…

如何使用css美化网页?

转自:微点阅读 https://www.weidianyuedu.com 相信大家通过上一篇文章的学习已经成功的创建了自己的第一个网页。虽然只有一句话,但这个仍然是一个网页。但是我相信你,一定觉得这个页面不好看,想自己美化一下,今天就可…

深度学习---确保每次训练结果一致的方法

每次训练结果不一致的原因: 神经网络特意用随机性来保证,能通过有效学习得到问题的近似函数。采用随机性的原因是:用它的机器学习算法,要比不用它的效果更好。 在神经网络中,最常见的随机性包含以下几个地方&#xf…

[黑马程序员C++笔记]P174-P184模板-类模板

视频地址:黑马程序员匠心之作|C教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 目录 P174模板-类模板基本语法 P175模板-类模板和函数模板区别 P176模板-类模板中成员函数创建时机 P177模板-类模板对象做函数参数 P178模板-类模板与继承 P179模板-类模板…

什么是MES制造执行系统?MES的优势,架构和核心功能

随着科技的飞速发展,企业要想增强自身的竞争力,在市场竞争中立于不败之地,只有这样才是唯一的出路。在过去30年中,对社会影响最大的技术进步是信息技术,它改变了我们的日常生活,改变了企业的管理方式。在信…

Kubernetes v1.25 源码编译

下载源码并切换到需要debug的分支 git clone gitgithub.com:kubernetes/kubernetes.git git checkout -b v1.25 remotes/origin/release-1.25 cd kubernetes编译源码 执行:make clean && KUBE_BUILD_PLATFORMSlinux/amd64 make all DBG1会编译所有的组件 网…

java 之泛型详解

1 什么是泛型 引入: 关于泛型,先来说几句集合。都知道集合是可以存储任意对象,当我们创建一个集合时如果没有声明它的存储类型,那该集合便自动提升为Object类型 提示:在我们创建对象的时候,如果没有明确指…

构建全真互联数字地图底座 腾讯地图产业版WeMap重磅升级

前言 :伴随着地理信息产业的不断演进,以及LBS、大数据、5G、云、AI等新技术的持续应用,数实融合发展呈现出加速态势,数字地图也从移动互联网时代向产业互联网时代进化。 WeMap腾讯地图产业版重磅升级!12月1日&#xff…

AD入门学习—元件库的创建2

目录 1.3 IC芯片类元件创建 1.4 晶体类元件创建 1.5 接插件座子元件创建 学习目录 1.3 IC芯片类元件创建 填写ID放置在原理图上才会有名字。 STM32F103VET6芯片: 主要用到的还是阵列式粘贴,先复制,然后向上粘贴是正的,向下粘贴…

(附源码)ssm学生考勤管理系统 毕业设计 260952

摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存…

C++日期和时间编程总结

一,概述二,C-style 日期和时间库 2.1,数据类型2.2,函数2.3,数据类型与函数关系梳理2.4,时间类型 2.4.1,UTC 时间2.4.2,本地时间2.4.3,纪元时间 2.5,输出时间和…

射频识别|计算机网络|第九讲数据通信和编码技术|奈氏准则和香农定理

1.数据通信概述 2.数据传输方式 3.传输介质 4.数据编码技术 (1)什么是比特率,什么是波特率,它们之间有何换算关系式? (2)数据通信系统的技术指标有哪些? (3)什么是信道容量,香农定理其中的各个参数的意义是什么&a…

Linux学习-76-LAMP环境搭建和LNMP环境搭建-前期准备

17 LAMP环境搭建和LNMP环境搭建-环境准备 LAMP是协同工作的一整套系统和相关软件,能够提供动态Web站点服务以及应用开发环境,是目前最为成熟也是比较传统的一种企业网站应用模式。 LAMP 环境搭建指的是在 Linux 操作系统中分别安装 Apache 网页服务器、…