浅谈Angular单元测试总结


Posted in Javascript onMarch 22, 2019

测试分类

按开发阶段划分

  • 单元测试

单元测试又称模块测试,针对软件设计中的最小单位——程序模块,进行正确性检查的测试工作。

  • 集成测试

集成测试又叫组装测试,通常在单元测试的基础上,将所有程序模块进行有序的、递增测试。重点测试不同模块的接口部分

  • 系统测试

指的是将整个软件系统看成一个整体进行测试,包括对功能、性能以及软件所运行的软硬件环境进行测试。

  • 验收测试

指按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统

按是否运行划分

  • 静态测试

是指不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误过程

  • 动态测试

是指实际运行被测程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。
按是否查看源代码划分

  • 黑盒测试

指的是把被测的软件看做一个黑盒子,不关心盒子里面的结构是什么样子,只关心软件的输入数据和输出数据。

  • 白盒测试

指的是把盒子打开,去研究里面的源代码和程序结构。

其他

  • 回归测试

是指软件被修改后重新进行的测试,重复执行上一个版本测试时的用例,是为了保证对软件所做的修改没有引入新的错误而重复进行的测试。

  • 冒烟测试

是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。

  • 随机测试

是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。

一直以来都是后台写单元测试,这周初次使用前台单元测试,出错是必然的

问题使用自己写的组件或者管道是报错

浅谈Angular单元测试总结

需要在前台单元测试spec.ts文件中加入自己写的组件或管道,例如:

浅谈Angular单元测试总结

使用框架中自带的组件

浅谈Angular单元测试总结

需要在前台单元测试spec.ts文件中加入报错信息提示的组件,例如:

[object ErrorEvent] thrown [对象 错误事件] 被抛出

浅谈Angular单元测试总结

这个错误是遇到次数最多的,当时出现这个错误时和张喜硕组长研究查资料搞了大半宿也没解决,最后还是在潘老师的帮助下解决的,得知ng test 时控制台报错的哪个文件,不一定是这个文件出错,解决办法如下:

打开单元测试时自动弹出来浏览器的控制台

浅谈Angular单元测试总结

控制台中,由于http发起请求时,必然发生错误,所以有很多个错误,但是导致单元测试不通过的,只有那些发生了异常,我们没有传入error的

浅谈Angular单元测试总结

找到Uncaught,点开HttpErrorResponse看一下对应service中的那个服务

在对应的服务中找到,找到方法(在方法名上右键Find Usages )看谁调用了我。

浅谈Angular单元测试总结

在订阅的时候,要加入error异常错误

浅谈Angular单元测试总结

加上之后问题解决,单元测试通过。

总结

单元测试从长期来看,可以提高代码质量,减少维护成本,降低重构难度。但是从短期来看,加大了工作量,对于进度紧张的项目中的开发人员来说,可能会成为不少的负担。

但是我这里有个疑问:

angular单元测试都是用命令行自动生成的,测试和不测试有什么区别?感觉加了测试反而更麻烦

Javascript 相关文章推荐
jquery 批量上传图片实现代码
Jan 28 Javascript
Javascript new Date().valueOf()的作用与时间戳由来详解
Apr 24 Javascript
基于jquery中children()与find()的区别介绍
Apr 26 Javascript
jQuery+html5实现div弹出层并遮罩背景
Apr 15 Javascript
jquery实现简单手风琴菜单效果实例
Jun 13 Javascript
谈谈impress.js初步理解
Sep 09 Javascript
JS实现仿QQ面板的手风琴效果折叠菜单代码
Sep 11 Javascript
vue中动态添加class类名的方法
Sep 05 Javascript
vue项目添加多页面配置的步骤详解
May 22 Javascript
Vue学习笔记之计算属性与侦听器用法
Dec 07 Javascript
Vue通过getAction的finally来最大程度避免影响主数据呈现问题
Apr 24 Javascript
js中复选框的取值及赋值示例详解
Oct 18 Javascript
JavaScript面试技巧之数组的一些不low操作
Mar 22 #Javascript
Vue-CLI 3.X 部署项目至生产服务器的方法
Mar 22 #Javascript
微信小程序城市选择及搜索功能的方法
Mar 22 #Javascript
使用node搭建自动发图文微博机器人的方法
Mar 22 #Javascript
如何从零开始手写Koa2框架
Mar 22 #Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
Mar 22 #Javascript
详解ES6中的Map与Set集合
Mar 22 #Javascript
You might like
如何对PHP程序中的常见漏洞进行攻击(下)
2006/10/09 PHP
用PHPdig打造属于你自己的Google[图文教程]
2007/02/14 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
PHP文章采集URL补全函数(FormatUrl)
2012/08/02 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
调试php程序的简单步骤
2019/10/04 PHP
laravel框架中视图的基本使用方法分析
2019/11/23 PHP
取得一定长度的内容,处理中文
2006/12/20 Javascript
Jquery截取中文字符串的实现代码
2010/12/22 Javascript
extjs 04_grid 单击事件新发现
2012/11/27 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
js如何调用qq互联api实现第三方登录
2014/03/28 Javascript
JavaScript获取网页表单提交方式的方法
2015/04/02 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
JavaScript登录记住密码操作(超简单代码)
2017/03/22 Javascript
vue bootstrap小例子一枚
2017/06/09 Javascript
微信小程序云开发 生成带参小程序码流程
2019/05/18 Javascript
详解一次Vue低版本安卓白屏问题的解决过程
2019/05/30 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
Vue循环中多个input绑定指定v-model实例
2020/08/31 Javascript
绘制微信小程序验证码功能的实例代码
2021/01/05 Javascript
Python版的文曲星猜数字游戏代码
2013/09/02 Python
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
几种实用的pythonic语法实例代码
2018/02/24 Python
tensorflow 获取模型所有参数总和数量的方法
2018/06/14 Python
python解释器安装教程的方法步骤
2020/07/02 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
Html5 new XMLHttpRequest()监听附件上传进度
2021/01/14 HTML / CSS
英国标志性奢侈品牌:Burberry
2016/07/28 全球购物
体育老师的教学自我评价分享
2013/11/19 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
医疗纠纷调解协议书
2015/08/06 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python