当前位置: 首页 > Web前端 > JavaScript

单元测试?现在完成!

时间:2023-03-27 15:45:42 JavaScript

什么是“低代码”?如何实现“低代码”?在具体的工作场景下如何使用“低代码”?今晚19:00,我们将在B站《百瓶科技》直播《百瓶低代码搭建平台实践》,不见不散!传送门前言今天胃口好吗?现在,随着项目业务的不断增长,重构和迭代也越来越频繁。为了保证项目的稳定性和可维护性,单元测试逐渐成为不可忽视的一部分。这篇文章会带来单元测试的介绍,关于框架选择、环境安装和编写测试用例等,内容比较简单易上手。什么是单元测试?在计算机程序设计中,单元测试(UnitTesting)又称模块测试,是对程序模块(软件设计的最小单元)正确性的测试。程序单元是应用程序的最小可测试组件。在过程式编程中,一个单元是单个程序、函数、进程等;对于面向对象编程来说,最小的单位是方法,包括基类(超类)、抽象类或派生类(子类)中的方法。以上是维基百科的解释。概括地说,单元测试就是对软件中最小的可测试单元的检查和验证。而对于JavaScript,它通常是针对函数、对象和模块的测试。为什么使用它优点放心重构:在重构某个业务代码的过程中,不用担心代码的副作用,用例会自动帮助全面测试;有利于维护:每次迭代新功能,代码更新频繁,测试有保障。完整性(因为之前的测试用例还存在),系统可维护性好,方便多人开发;快速熟悉代码:对于刚加入团队的新人来说,单元测试其实是更好的文档,每个案例都可以详细的反映代码中包含的具体功能和业务;提高代码质量:如果一个单元测试写的逻辑很复杂,或者一个功能太复杂无法写单元测试,说明模块抽取有问题,可以给自己提个醒。前端主流测试框架名称介绍及优势JestFacebook发布,简单的API,快速的覆盖率统计,内置断言库等常用测试工具,是高手,简单易用摩卡诞生于2011年,社区活跃,灵活,可扩展性好,但需要额外的配置(比如assertion,需要学习和选择自己的工具库)Karma是Google团队在2012年开发的,它有一个强大的功能,可以监控(Watch)文件变化并可自动执行显示测试结果。断言的概念:是判断源代码的实际执行结果是否与预期结果一致,如果不一致则抛出异常。知名团队使用Jest团队的数百瓶TwitterFacebookAirbnbLogo前端如何选择合适的框架项目需求和项目及编译器需要更好的兼容测试快速执行明确报错成本学习成本调试维护成本在其他框架方面,Jest相对较新。白屏前端团队本着对待技术“喜新厌旧”的精神,结合自身需求,使用了Jest,结合VueTestUtils组件测试框架。功能更齐全,使用更方便。另外,Vue官网对Jest的评价是:最全面的测试运行器。Tips:如果你写过Mocha测试用例,但想迁移到Jest框架,可以使用jest-codemods进行无缝迁移。撸起袖子开始吧Talkischeap,showyouthecode!立即开始设置环境。有脚手架生成的Vue项目(如果还没有生成Vue项目,可以选择在创建Vue项目时手动配置内容,在手动配置中添加Jest测试框架和VueTestUtils工具库).Jest安装方法一:先安装Jest,进入项目目录,输入命令。npminstall--save-devjest安装Jest相关的依赖项。npminstall--save-devjestbabel-jestbabel-corebabel-preset-envregenerator-runtimebabel-jest、babel-core、regenerator-runtime、babel-preset-env安装用于使用ES6语法进行单元测试。因为Jest不支持在ES6中使用import。添加.bablerc文件{"presets":[["env",{"modules":false}]],"env":{"test":{"presets":["env"]}}}来构建jest.conf.js文件用于配置module.exports={moduleFileExtensions:['js','json','vue',]],//告诉Jest处理`*.vue`文件moduleNameMapper:{//支持在sourcecode`@`=>`src`alias'^@/(.*)$':'/src/$1',},transform:{//使用babel-jest处理js'^.+\\.js$':'/node_modules/babel-jest',//使用vue-jest处理`*.vue`文件'.*\\.(vue)$':'/node_modules/vue-jest',}}添加测试和脚本命令,在package.json中添加测试单元脚本{'script':{'test':'jest'}}其中可以优化测试命令"test":"jest--configjest.conf.js--coverage--watch"--coverage可以生成覆盖率报告--watch实现单元测试监控,修改测试用例时无需运行命令行,可以自行监控--configjest。conf.js是为了解决测试Vue组件时找不到组件模块的问题。方法二:使用命令行npxjest--init运行。安装VueTestUtils和vue-jest预处理器。npminstall--save-devjest@vue/test-utils要告诉Jest如何处理*.vue组件文件,我们需要安装和配置vue-jest预处理器:npminstall--save-devvue-jest最小配置如下,就可以进行单元测试了:注意:如果你使用Babel7或者更高版本,你需要在你的devDependencies中添加babel-bridge。npminstall--save-devbabel-core@^7.0.0-bridge.0安装完成后,创建test文件夹,学习官方API,供测试用例使用。在该文件夹下创建.js,并引入我们需要测试的功能添加:运行命令npmrunjest,直至完成本项目的基本单元测试安装和使用。最后,值得思考的是,并非所有项目都值得引入测试框架。毕竟维护测试用例也是需要成本的。对于一些需求变化频繁,复用性不高的内容,是极其不合适的。以下三种情况比较适合需要长期维护的项目,因为需要功能稳定;更稳定的项目或项目中更稳定的部分;被多次复用的地方,如常用组件、库函数等。前端单元测试的使用简单介绍到此结束。我希望这篇文章对你有所帮助。祝你每天都有好胃口!参考《Jest官网》https://www.jestjs.cn/docs/ge...《Mocha官网》https://mochajs.org/《Vue测试Utils使用》https://vue-test-utils.vuejs....「Jest+VueTestUtils官方使用」https://vue-test-utils.vuejs....更多精彩请关注我们的公众号“百瓶技术”,有不定期福利哟!