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

前端测试

请添加图片描述

场景

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

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

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

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

解决方案

测试类型

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

  • 单元测试
  • 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.rhkb.cn/news/174562.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分类预测 | Matlab实现KOA-CNN-BiGRU-selfAttention多特征分类预测(自注意力机制)

分类预测 | Matlab实现KOA-CNN-BiGRU-selfAttention多特征分类预测(自注意力机制) 目录 分类预测 | Matlab实现KOA-CNN-BiGRU-selfAttention多特征分类预测(自注意力机制)分类效果基本描述程序设计参考资料 分类效果 基本描述 1.M…

jenkins详细安装教程

这里写目录标题 一、Jenkins安装与部署1-1、Jenkins的简介1-2、下载需要的软件1-2-1 jekins.war1-2-2 tomcat安装方式 1-3、使用11版本的jdk1-4、开启jenkins1-5、获取密码1-5 修改镜像(可改可不改) 二、卸载Jenkins 一、Jenkins安装与部署 1-1、Jenkins的简介 Jenkins是一个…

Java电商平台 - API 接口设计之 token、timestamp、sign 具体架构与实现|电商API接口接入

一:token 简介 Token:访问令牌access token, 用于接口中, 用于标识接口调用者的身份、凭证,减少用户名和密码的传输次数。一般情况下客户端(接口调用方)需要先向服务器端申请一个接口调用的账号,服务器会给出一个appId和一个key, …

mysql 间隙锁

mysql 默认是可重复读的隔离级别,这种默认会有幻读,幻读指的什么现象呢,就是在同一个事物中前后两次查到的结果不一致,那么mysql是怎么解决幻读的呢,这就是mvcc mvcc 什么是mvcc呢,就是多版本并发控制&am…

迁移学习 - 微调

什么是与训练和微调? 你需要搭建一个网络模型来完成一个特定的图像分类的任务。首先,你需要随机初始化参数,然后开始训练网络,不断调整参数,直到网络的损失越来越小。在训练的过程中,一开始初始化的参数会…

【Python算法】算法练习(一)

❤️博客主页: iknow181 🔥系列专栏: Python、JavaSE、JavaWeb、CCNP 🎉欢迎大家点赞👍收藏⭐评论✍ 目录 1、输出n以内的质数 2、求n以内最大的m个质数的和,并打印这些质数以及它们的和 方法一 方法二…

GaussDB数据库管理系统介绍

1.GaussDB的发展 2.GaussDB的生态 内部: 云化自动化方案。通过数据库运行基础设施的云化将DBA(数据库管理员)和运维人员的日常工作 自动化。外部: 采用与数据库周边生态伙伴对接与认证的生态连接融合方案,解决开发者/DBA难获取、应用难对接等…

2023年【安全员-C证】报名考试及安全员-C证考试内容

题库来源:安全生产模拟考试一点通公众号小程序 安全员-C证报名考试根据新安全员-C证考试大纲要求,安全生产模拟考试一点通将安全员-C证模拟考试试题进行汇编,组成一套安全员-C证全真模拟考试试题,学员可通过安全员-C证考试内容全…

[UDS] --- CommunicationControl 0x28

1 0x28功能描述 根据ISO14119-1标准中所述,诊断服务28服务主要用于网络中的报文发送与接受,比如控制应用报文的发送与接收,又或是控制网络管理报文的发送与接收,以便满足一定场景下的应用需求。 2 0x28应用场景 一般而言&#…

<多线程章节八> 单例模式中的饿汉模式与懒汉模式的讲解,以及懒汉模式中容易引起的Bug

💐专栏导读 本篇文章收录于多线程,也欢迎翻阅博主的其他文章,可能也会让你有不一样的收获😄 🌷JavaSE 🍂多线程 🌾数据结构 文章目录 💐专栏导读💡饿汉模式💡…

【算法练习Day32】 斐波那契数爬楼梯使用最小花费爬楼梯

​📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 斐波那契数爬楼梯使用最小花…

Vue的动画与过度

一、Vue的动画效果 (一)编写CSS关键帧动画 keyframes show{from{transform: translateX(-100%);}to{transform: translateX(0px);} } (二)定义动画效果 .v-enter-active { animation: 配置项 } // 显示动画 .v-leave-active…

洛谷 P5717 三角形分类 C++代码

目录 前言 题目描述 思路点拨 优化 AC代码 AC截图 结尾 前言 马上就要突破10000浏览量了,再写一篇加加油! 图片截图时间:2023.10.25.20:23 题目描述 网址:【深基3.习8】三角形分类 - 洛谷 思路点拨 这道题是给定三条边的长度&#…

一天收入500元的货拉拉运费差项目靠谱吗?

最近的货拉拉运费差项目有点火呀!收费也不低,1680-16980的比比皆是。 这个项目去年我就在某些平台看到过,今天就跟大家详细聊聊这个项目,想入坑的不妨先看看这篇文章。 一:项目原理 有人叫它货拉拉搬砖项目&#xf…

骨传导耳机怎么佩戴,骨传导蓝牙耳机什么牌子好用

市面上的传统耳机一直以来都存在一些问题,比如长时间佩戴会导致耳朵不适,或者声音过大可能会伤害到耳膜。但是,现在有一种独特的耳机正在迅速走红,它被称为骨传导耳机,而骨传导耳机是怎么佩戴的呢,它在佩戴…

勒索病毒最新变种.locked勒索病毒来袭,如何恢复受感染的数据?

导言: 在当今数字化时代,网络威胁呈指数级增长,而.locked勒索病毒已经成为网络犯罪分子的犯罪工具之一。这种病毒以其高度破坏性和高级加密技术而著名,将用户的重要数据文件锁定,然后要求支付赎金以解锁这些文件。在本…

window安装es服务及删除

elasticsearch-service.bat install 删除es服务,先停止es服务运行,管理员cmd模式,sc delete "elasticsearch-service-x64"

gRPC初体验

一、gRPC简介 1、RPC是远程过程调用的简称,在分布式系统中,客户端可以像调用本地对象一样调用远程机器上服务端对象,用于系统的垂直拆分,常见的JAVA RPC框架有JAVA自带的RMI、基于Http的Hessian、阿里基于TCP的Dubbo、淘宝基于TC…

Kotlin中使用ViewBinding绑定控件并添加点击事件

文章目录 效果1、加入依赖2、与控件进行绑定在 Activity 中使用视图绑定 3、监听控件 效果 实现源码 class MainActivity : AppCompatActivity() {lateinit var binding:ActivityMainBindingoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstan…

云安全—K8s APi Server 6443 攻击面

0x00 前言 在未授权的一文中,详细描述了k8s api中的8080端口未授权的问题,那么本篇主要来说6443端口的利用。 0x01 API连接攻击面 1.匿名用户访问 匿名开放方式:kubectl create clusterrolebinding cluster-system-anonymous --clusterro…