浅谈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工具 Cookie 封装
Aug 21 Javascript
jquery入门—数据删除与隔行变色以及图片预览
Jan 07 Javascript
JS短路原理的应用示例 精简代码的途径
Dec 13 Javascript
JavaScript表单验证实例之验证表单项是否为空
Jan 10 Javascript
Bootstrap风格的WPF样式
Dec 07 Javascript
详解JS数组Reduce()方法详解及高级技巧
Aug 18 Javascript
JS实现的JSON数组去重算法示例
Apr 11 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
Dec 11 jQuery
JavaScript遍历DOM元素的常见方式示例
Feb 16 Javascript
javascript中的this作用域详解
Jul 15 Javascript
Javascript异步编程async实现过程详解
Apr 02 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
May 30 jQuery
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 tp验证表单与自动填充函数代码
2012/02/22 PHP
thinkPHP实现多字段模糊匹配查询的方法
2016/12/01 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
Laravel5.7 数据库操作迁移的实现方法
2019/04/12 PHP
JavaScript 字符串与数组转换函数[不用split与join]
2009/12/13 Javascript
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
js unicode 编码解析关于数据转换为中文的两种方法
2014/04/21 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
C#中使用迭代器处理等待任务
2015/07/13 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)
2016/01/22 Javascript
JS实现pasteHTML兼容ie,firefox,chrome的方法
2016/06/22 Javascript
jQuery 选择符详细介绍及整理
2016/12/02 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
详解angularJs指令的3种绑定策略
2017/04/13 Javascript
redux-saga 初识和使用
2018/03/10 Javascript
小程序异步问题之多个网络请求依次执行并依次收集请求结果
2019/05/05 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
Vue props中Object和Array设置默认值操作
2020/07/30 Javascript
[07:25]DOTA2-DPC中国联赛2月5日Recap集锦
2021/03/11 DOTA
[01:06:54]DOTA2-DPC中国联赛 正赛 SAG vs DLG BO3 第二场 2月28日
2021/03/11 DOTA
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
python实现Virginia无密钥解密
2019/03/20 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
Pytorch mask-rcnn 实现细节分享
2020/06/24 Python
python 读取yaml文件的两种方法(在unittest中使用)
2020/12/01 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
Html5中的桌面通知Notification的实现
2018/09/25 HTML / CSS
手机业务员岗位职责
2013/12/13 职场文书
民主评议政风行风活动心得体会
2014/10/29 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
祝酒词范文
2015/08/12 职场文书
教学反思怎么写
2016/02/24 职场文书
使用SQL实现车流量的计算的示例代码
2022/02/28 SQL Server
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
2022/04/24 Python