Node.js学习笔记-05

这篇具有很好参考价值的文章主要介绍了Node.js学习笔记-05。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

10、测试

测试包含单元测试、性能测试、安全测试和功能测试等几个方面,本章将从Node实践的角度来介绍单元测试和性能测试。

10.1 单元测试

10.1.1 单元测试的意义

开发者自测。对于开发者而言,不仅要编写单元测试,还应当编写可测试代码。
编写可测试代码原则:

  1. 单一职责
  2. 接口抽象
  3. 层次分离

10.1.2 单元测试介绍

1.断言
2.测试框架
3.测试代码的文件组织
4.测试用例
5.测试覆盖率
6.mock
7.私有方法的测试

10.1.3 工程化与自动化

1.工程化
2.持续集成

10.1.4 小结

在这一节中,我们介绍了普通的单元测试的方方面面,对于一些特定场景下的单元测试方式并未做过多介绍比如测试Web应用等,读者可以自行查看所用Web框架的测试方式,比如Connect或Express提供了supertest辅助库来简化单元测试的编写。
在项目中经常会因为依赖方的变化而产生业务代码的跟随变动,如果没有单元测试的覆盖,依赖方逻辑发生变化后,很难定位该变动影响的范围。一旦为项目覆盖完善的单元测试项目的状态将会因为测试报告而了然于心。完善的单元测试在一定程度上也昭示着项目的成熟度。

10.2 性能测试

单元测试主要用于检测代码的行为是否符合预期。在完成代码的行为检测后,还需要对已有代码的性能作出评估,检测已有功能是否能满足生产环境的性能要求,能否承担实际业务带来的压力。换句话说,性能也是功能。
性能测试的范畴比较广泛,包括负载测试、压力测试和基准测试等。由于这部分内容并非Node特有,为了收敛范畴,这里将只会简单介绍下基准测试。
除了基准测试,这里还将介绍如何对Web应用进行网络层面的性能测试和业务指标的换算。

10.2.1 基准测试

10.2.2 压力测试

10.2.3 基准测试驱动开发

  1. 写基准测试
  2. 写/改代码
  3. 收集数据
  4. 找出问题
  5. 回倒第2步

10.2.4 测试数据与业务数据的转换

10.3 总结

测试是应用或者系统最重要的质量保证手段。有单元测试实践的项目,必然对代码的粒度和层次都掌握得较好。单元测试能够保证项目每个局部的正确性,也能够在项目迭代过程中很好地监督和反馈迭代质量。如果没有单元测试,就如同黑夜里没有秉烛的行走。
对于性能,在编码过程中一定存在部分感性认知,与实际情况有部分偏差,而性能测试则能很好地斧正这种差异。

11、产品化

目前,在国内大多数人都将Node以实验性质的方式来使用,国外已经有知名的项目将Node应用在实际的生产环境中,如eBay的数据中间层、Linkedin移动应用的服务器端等。本章将详细介绍将Node产品化过程中需要注重的一些细节,这些细节其实是具备普适性的,并非Node所独有。鉴于部分Node开发者可能从前端转来,为了完善Node生态的介绍,所以添加了此章。尽管因为熟悉JavaScript,可以较好地上手Node,但是事实上从演示原型到产品还有较长的缝隙需要去填补。
在实际的产品中,需要很多非编码相关的工作以保证项目的进展和产品的正常运行等,这些细节包括工程化、架构、容灾备份、部署和运维等。只有这些任务在持续性进行,才表明项目是活着的。

11.1 项目工程化

所谓的工程化,可以理解为项目的组织能力。体现在文件上,就是文件的组织能力。对于不同类型的项目,其组织方式也有所不同。除此之外,还应当有能够将整个项目串联起来的灵魂性文件。
项目的组织就犹如行军作战的阵法和章法,混乱而无目的的军队几乎不可能打胜仗,有其形有其魂的组织的生命周期才会更长,其形态才更稳固。
在项目工程化过程中,最基本的几步是目录结构、构建工具、编码规范和代码审查等。

11.2 部署流程

11.3 性能

11.4 日志

11.5 监控报警

11.6 稳定性

11.7 异构共存

11.8 总结

一般而言,决定用一项技术进行产品开发时,只有最早期是与这门技术完全相关的。随着时间的迁移,要解决的已经不是原来的问题了,一门技术只能在一定层面上发挥出它的优势来。用Node也是一样,随着开发的进展、涉及层面的增多,我们看到在产品的角度要解决的问题依然是大部分技术都要解决的问题。我们希望读者能够将Node纳人到新的层面上进行考虑,使它更适应产品,在产品中发挥出更大的优势来。

下一章介绍:搭建局域NPM仓库文章来源地址https://www.toymoban.com/news/detail-657577.html

到了这里,关于Node.js学习笔记-05的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • web学习笔记(四十五)Node.js

    目录 1. Node.js 1.1 什么是Node.js 1.2 为什么要学node.js 1.3  node.js的使用场景 1.4 Node.js 环境的安装 1.5 如何查看自己安装的node.js的版本 1.6 常用终端命令 2. fs 文件系统模块 2.1引入fs核心模块 2.2 读取指定文件的内容 2.3  向文件写入指定内容 2.4 创建文件夹  2.5 判断文件夹是否存

    2024年04月16日
    浏览(34)
  • 尚硅谷最新Node.js 学习笔记(一)

    目录 一、Nodejs入门 1.1、为什么要学习Nodejs? 1.2、Nodejs是什么? 1.3、Nodejs的作用 1.4、Nodejs安装 1.5、Nodejs初体验 1.6、编码注意事项 二、Buffer(缓冲器) 2.1、概念 2.2、特点 2.3、使用 创建Buffer Buffer与字符串的转化 Buffer的读写 三、fs模块 3.1、文件写入 异步写入 同步写入 app

    2024年02月19日
    浏览(42)
  • 小白的Node.js学习笔记大全---不定期更新

    Node. js 是一个基于 Chrome v8 引擎的服务器端 JavaScript 运行环境 Node. js 是一个事件驱动、非阻塞式I/O 的模型,轻量而又高效 Node. js 的包管理器 npm 是全球最大的开源库生态系统 单一线程 Node.js 沿用了 JavaScript 单一线程的执行特性。即在 Node.js 中,JavaScript 的执行线程与其他线程

    2024年02月12日
    浏览(44)
  • Node.js 学习笔记 fs、path、http模块;模块化;包;npm

    教学视频 BV1MN411y7pw , P83-97的笔记 Node.js是一个跨平台JavaScript运行环境,使开发者可以搭建服务器端的JavaScript应用程序。 作用:使用 Node.js 编写服务器端程序 ✓ 编写数据接口,提供网页资源浏览功能等等 ✓ 前端工程化:为后续学习 Vue 和 React 等框架做铺垫 1.前端工程化 前

    2024年04月08日
    浏览(88)
  • 自学WEB后端05-Node.js后端服务链接数据库redis

    嘿,亲爱的小伙伴们!😄 今天我要给大家分享一个超级方便且高效的 NoSQL 类型数据库——Redis!💡 它可不是一般的关系型数据库哦,而是以键值对形式存储数据的内存数据库。📚 快跟着我一起来学习如何安装和使用 Redis 吧!  自学WEB后端01-安装Express+Node.js框架完成Hello

    2024年02月07日
    浏览(51)
  • Vue-Element-Admin项目学习笔记(7)用Node.js写一个简单后端接口

    前情回顾: vue-element-admin项目学习笔记(1)安装、配置、启动项目 vue-element-admin项目学习笔记(2)main.js 文件分析 vue-element-admin项目学习笔记(3)路由分析一:静态路由 vue-element-admin项目学习笔记(4)路由分析二:动态路由及permission.js vue-element-admin项目学习笔记(5)路由分析

    2024年02月09日
    浏览(55)
  • Node.js笔记

    node下载地址:Node.js (nodejs.org) 查看node版本: 运行js文件: 按住shift+鼠标右键:打开Power Shell,PS是新的cmd npm类似maven包管理工具 npm设置阿里镜像: 文件模块 文件的读取: 文件的写入: __dirname:当前文件所在目录 __filename:__dirname本文件全名 路径拼接 path里面可以用../回退

    2024年02月10日
    浏览(36)
  • node.js笔记(3)

    在使用fs模块操作文件是,如果使用./或../开头的相对路径时,很容易出现路径动态拼接错误。原因是在代码运行的时候,会执行node命令所处的目录,动态拼接出被操作的完整路径。 出现路径拼接是因为是相对路径,采用绝对路径则不会。 采用绝对路径,移植性特别差,不利

    2024年01月19日
    浏览(41)
  • node.js笔记(2)

    fs模块是node.js官方提供的,用来操作文件的模块,提供了一系列的方法和属性,用来满足用户对文件的操作需求。 在使用之前,需要导入,使用require方法来导入 读取指定文件的内容 fs.readFile(path,[options],callback) 其中,path代表文件路径, options是可选参数,表示以什么编码格

    2024年01月17日
    浏览(47)
  • (Node笔记)Node.js安装及环境配置——史诗级详细版

    目录 1、下载Node.js 2、安装Node.js 3、验证Node.js安装 4、Node.js环境配置         (1)更改npm安装全局模块的目录和缓存路径         (2)配置环境变量 5、测试Node.js安装结果 6、配置淘宝镜像 7、总结         官方下载地址: https://nodejs.org/zh-cn/         双击“ node-v

    2024年02月05日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包