探讨下前端测试的常见场景

news/2025/2/5 6:53:14/

前端测试

请添加图片描述

场景

这边指的测试是指白盒测试,用代码来测试代码。

测试有利于提升代码质量。

  • 代码功能和需求一致。根据需求,写测试。测试通过了,则表明需求实现了。
  • 保证代码重构后,未改坏以前的功能。代码重构后,能通过原有的测试。

测试的另一个好处是,可以通过现有测试,来直观的了解需求。

解决方案

测试类型

根据测试对象类型不同,测试包含如下类型:

  • 单元测试
  • UI 测试
  • 接口测试
单元测试

单元测试的测试对象主要是函数和组件。

测试传不同的参数或属性值,返回值是否和预期一致,报错情况是否与预期一致,回调函数的执行情况是否和预期一致,造成的副作用是否和预期一致。副作用包括 DOM 操作,BOM 操作。

UI 测试

UI 测试的测试对象是 UI。

测试在页面未做过交互或交互(如点击,输入)后,UI 的结果是否和预期一致。

手写 UI 测试用例工作量很大。常用的 2 种 替换方式是:截图比较(Snapshot Testing) 和 UI 自动化测试。

截图比较是当前程序生成的 UI 的截图 和 之前程序生成的 UI 的截图比较。第一次运行程序要生成截图。当 UI 改动后,可以更新截图。截图适用用检查代码重构后,是否改坏了 UI。

UI 自动化测试 需要 录制测试脚本。根据测试脚本生成对应的测试用例代码。以后每次运行测试用例,就是执行录制脚本中的操作。具体看 UI 自动化录制工具: UI Recorder。

接口测试

接口测试的测试对象是 API 接口。

调 API 接口,传不同的参数,接口返回的结果是否和预期一致。

衡量测试的效果

用测试覆盖率来衡量测试的效果。

工具库

  • 测试框架

    • Jest。 VSCode 插件

      • Jest Runner 单独运行某个用例
      • Jest Snippets
    • Mocha

  • 断言库

    • Power-asset
    • Chai
  • Spies,Stub, Mock, Fake 等

    • SINON.JS
  • E2E 测试

    • Enzyme
    • cypress
    • Nightwatch.js
  • 无头浏览器

    • Puppeteer
    • PhantomJS
  • UI 自动化工具

    • UI Recorder
  • 测试覆盖率

    • istanbul

http://www.ppmy.cn/news/1186252.html

相关文章

vue页面el-tab控件标签栏加入按钮功能

vue页面el-tab控件标签栏加入按钮功能 显示效果为&#xff1a; <el-tabs v-model"activeName" type"border-card" style"margin-right:5px"><el-tab-pane label"模型管理" name"first"><span slot"l…

解锁高效创作艺术!AI助力文章生成与精美插图搭配完美融合

在当今这个信息爆炸的时代&#xff0c;高效创作文章已经成为了一种必备的技能。然而&#xff0c;创作一篇高质量的文章并插入精美插图&#xff0c;往往需要耗费大量的时间和精力。现在&#xff0c;随着AI技术的发展&#xff0c;我们迎来了一个全新的文章创作时代——利用AI高效…

QT5.15在Ubuntu22.04上编译流程

在我们日常遇到的很多第三方软件中&#xff0c;有部分软件针对开发人员&#xff0c;并不提供预编译成果物&#xff0c;而是需要开发人员自行编译&#xff0c;此类问题有时候不是问题&#xff08;编译步骤的doc详细且清晰时&#xff09;&#xff0c;但有时候又很棘手&#xff08…

k8s节点已有镜像,但Pod一直在拉取镜像时卡着

Pod状态为ContainerCreating&#xff0c;查看日志提示pull镜像&#xff0c;但该镜像在Node节点已经存在&#xff0c;且拉取策略为IfNotPresent 解决&#xff1a;重启kubelet

mac文件夹无法写入 mac只能读取不能写入怎么解

mac用户在使用外接硬盘或U盘时&#xff0c;有时会遇到一个问题&#xff1a;mac文件夹无法写入&#xff08;只能读取不能写入&#xff09;&#xff0c;这种情况很让人头疼&#xff0c;因为无法对文件进行修改、删除或复制等操作。那么&#xff0c;mac文件夹无法写入的原因是什么…

【ROS入门】机器人系统仿真——URDF集成Gazebo

文章结构 URDF与Gazebo基本集成流程创建功能包编写URDF或Xacro文件启动 Gazebo 并显示机器人模型 URDF集成Gazebo相关设置collisioninertial颜色设置 URDF集成Gazebo实操编写封装惯性矩阵算法的 xacro 文件复制相关 xacro 文件&#xff0c;并设置 collision inertial 以及 colo…

【uniapp】禁止页面上下滚动

是用"disableScroll": true属性控制&#xff0c;该属性默认为 false 设置为 true 则页面整体不能上下滚动&#xff08;bounce效果&#xff09;&#xff0c;只在页面配置中有效&#xff0c;在 globalStyle 中设置无效。 {"path": "pages/assess/sign…

H5游戏分享-烟花效果

<!DOCTYPE html> <html dir"ltr" lang"zh-CN"> <head> <meta charset"UTF-8" /> <meta name"viewport" content"widthdevice-width" /> <title>点击夜空欣赏烟花</title> <sc…