学习笔记——在vue中如何配置Jest(一)

最近在搞Jest单元测试,如何在vue中安装和使用jest我就不说了,前一篇文章简单的说了一下在使用jest时遇到的一些问题,但是我觉得并没有真正的解决的很好。后面会在学习过程中更新前面的那篇文章,加

大家好,又见面了,我是你们的朋友全栈君。

  最近在搞Jest单元测试,如何在vue中安装和使用jest我就不说了,前一篇文章简单的说了一下在使用jest时遇到的一些问题,但是我觉得并没有真正的解决的很好。后面会在学习过程中更新前面的那篇文章,加入后续遇到的问题以及解决问题的方法,持续的做一个记录。

  好了,废话不多说,咱们开始今天的内容吧。因为之前使用jest时候的项目是移植过来的项目,因为复杂的环境以及外部文件引入的等等等等的问题。采用的方式就是新建一个空的vue-cli生成的用jest来做单元测试的项目,这就导致了测试环境的配置是极为脆弱的。而且还有十分大的隐患。但是又没办法一下子解决。所以,我想在这篇文章中,整理记录一下jest的配置参数的用法等。

  jest的配置文件是单独生成在unit文件夹下的一个独立文件,并没有和vue-cli生成的webpack构建的环境相关联。所以个人感觉这样更清爽一些吧。

一、默认配置文件参数的意义

  我们先来看一张图,然后我一一介绍说明他们都是用来做什么的:<span role="heading" aria-level="2">学习笔记——在vue中如何配置Jest(一)

  这是当前版本的vue-cli生成的jest.conf.js的配置文件,我们可以在package.json中的配置项里看到,我们在npm run unit 的时候,真正运行的就是这个文件的配置。

  前面的文章说过了,要添加一个testURL来解决找不到localstorage的问题。并且修改mapCorverage为collectCorverage,前者是旧版本的参数。

  那我们接下来一一介绍每个参数的配置及其含义。

  rootDir:其实就是指整个项目的根目录,也就是最外层的目录。这里多句嘴,再解释下path.resolve(__dirname,”../../”)的意义,他最终返回的结果是该问见所在的根目录,简单来说__dirname返回的是当前目录,再向上两层,就是整个项目的根目录了。

  moduleFileExtensions:这个文档解释的是“模块使用的文件扩展名数组,从左往右查找这些文件”。实际上我的理解,这个参数的意义就是让jest知道你需要测试覆盖的文件的扩展名都是什么。

  moduleNameMapper:一种正则表达式到模块名的映射,匹配到的文件的内容可以是空的。我理解的是,可以通过该参数,来mock一些图片,css等静态资源文件,因为我们在测试的时候实际上是不太需要这些文件的,但是有需要引入它作为环境上的依赖。

  transform:简单来说就是转换器,正则匹配到的文件可以通过对应模块的转换器来解决一些未来版本语法时可以使用它。通过正则来匹配文件,为匹配到的文件使用对应的模块。

  snapshotSerializers:快照测试的插件,会生成测试文件的一个快照版本,可以再package.json中查看安装的快照插件。

  setupFiles:运行一些测试环境所要依赖的模块的路径列表,比如引入vue,elementUI等插件的列表,以给测试提供完整的环境。

  collectCoverage:是否收集测试时的覆盖率信息。

  testURL:该选项是设置jsdom环境的参数。

  coverageDirectory:jest输出覆盖率信息文件的目录。

  collectCoverageFrom:为数组中匹配的文件收集覆盖率信息,即使并没有为该文件写相关的测试代码,需要将collectCoverage设置为true,或者通过–corverage参数来调用jest。

 

  这样我们就解释完了基础配置的参数,学习过后,我们对jest的配置有了一个基本的了解。但是要想写单元测试文件,还是远远不够的。下一篇文章,我会介绍如何在为vue的单文件组件写测试用例。并且解释说明一下我在使用jest时候的一个疑问,什么是localVue,shallowMount与mount与localVue的区别是啥?localVue与Vue的区别是啥?那么今天就到这里啦…

  

  参考:https://jestjs.io/docs/en/getting-started

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/124401.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • 阿里云轻量级服务器和ecs的区别_阿里云服务器可以干嘛

    阿里云轻量级服务器和ecs的区别_阿里云服务器可以干嘛阿里云轻量应用服务器与云服务器ECS服务器对比优势 …

  • 小众网java下载_jar应用下载

    小众网java下载_jar应用下载全版本都有包含:windows、Linux、源码等,根据名称进行挑选、下载!网址:https://jbossas.jboss.org/downloads/如何解决了您的问题,欢迎关注我!还希望来JAVAWEB开发交流群:958923746,有问题欢迎共享,共同提升!…

  • 大数据降噪方法论

    大数据降噪方法论部分机构掌握了一定量的客户信息数据,就以为掌握了大数据,忽视对数据分析工具和方法论的研究。在金融业务中,这有可能影响其对风险的识别和防控,并造成风险的积聚和扩散。最近,《互联网金融风险专项整治工作实施方案》全文网上曝光,包括第三方支付、P2P网贷、股权众筹、互联网保险、投资理财,以及互联网跨界资管,甚至互联网广告,都将面临一轮集中整治。分析整治的原因…

  • type-c是pd_type c pd 什么意思

    type-c是pd_type c pd 什么意思第一部分包含:一、二、三、四第二部分包含:五、六目录一、Type-C简介以及历史二、Type-CPort的DataRole、PowerRole三、Type-C的Data/PowerRole识别协商/AltMode四、如何进行数据链路的切换五、相关参数/名词/状态解释六、PD协议简介一、Type-C简介以及历史自1998年…

  • xx学OD — 函数参考

    xx学OD — 函数参考

  • MySQL常用命令大全(完整)「建议收藏」

    MySQL常用命令大全(完整)「建议收藏」打开Linux或MacOS的Terminal(终端)直接在终端中输入windows快捷键win+R,输入cmd,直接在cmd上输入1、mysql服务的启动和停止netstopmysqlnetstartmysql启动失败可按快捷键win+R,输入services.msc,找到MySQL服务器的名称启动2、登陆mysqlmysql(…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号