浅谈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 相关文章推荐
JS 文字符串转换unicode编码函数
May 30 Javascript
基于JQuery的Select选择框的华丽变身
Aug 23 Javascript
js实现目录定位正文示例
Nov 14 Javascript
原生JS操作网页给p元素添加onclick事件及表格隔行变色
Dec 01 Javascript
通过遮罩层实现浮层DIV登录的js代码
Feb 07 Javascript
JavaScript+html5 canvas制作色彩斑斓的正方形效果
Jan 27 Javascript
Bootstrap每天必学之导航组件
Apr 25 Javascript
移动端利用H5实现压缩图片上传功能
Mar 29 Javascript
详解@angular/cli 改变默认启动端口两种方式
Nov 29 Javascript
layui表格 返回的数据状态异常的解决方法
Sep 10 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
Nov 07 Javascript
浅谈关于vue中scss公用的解决方案
Dec 02 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
codeigniter数据库操作函数汇总
2014/06/12 PHP
php保存信息到当前Session的方法
2015/03/16 PHP
JavaScript XML操作 封装类
2009/07/01 Javascript
javascript 正则表达式相关应介绍
2012/11/27 Javascript
几种设置表单元素中文本输入框不可编辑的方法总结
2013/11/25 Javascript
基于JS实现的倒计时程序实例
2015/07/24 Javascript
JS文字球状放大效果代码分享
2015/08/19 Javascript
AngualrJS中每次$http请求时的一个遮罩层Directive
2016/01/26 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
老生常谈JavaScript面向对象基础与this指向问题
2017/10/16 Javascript
vue.js element-ui validate中代码不执行问题解决方法
2017/12/18 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
浅谈Python中的数据类型
2015/05/05 Python
Python做文本按行去重的实现方法
2016/10/19 Python
通过实例解析python描述符原理作用
2020/01/22 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
英国森林假期:Forest Holidays
2021/01/01 全球购物
结构和类有什么异同
2012/07/16 面试题
临床医学专业个人的自我评价
2013/09/27 职场文书
演讲稿怎么写
2014/01/07 职场文书
2014年计算机专业个人自我评价
2014/01/19 职场文书
关于工作时间玩手机的检讨书
2014/09/18 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
2014酒店客房部工作总结
2014/12/16 职场文书
2014年法院个人工作总结
2014/12/17 职场文书
超市工作总结范文2014
2014/12/19 职场文书
故宫英文导游词
2015/01/31 职场文书
入党积极分子考察意见
2015/06/02 职场文书
深度学习tensorflow基础mnist
2021/04/14 Python
Python中zipfile压缩包模块的使用
2021/05/14 Python
上个世纪50年代的可穿戴技术:无线电帽子
2022/02/18 无线电
浅谈Vue的computed计算属性
2022/03/21 Vue.js
Golang日志包的使用
2022/04/20 Golang
Python实现将多张图片合成MP4视频并加入背景音乐
2022/04/28 Python
解决vue自定义组件@click点击失效问题
2022/04/30 Vue.js