浅谈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 相关文章推荐
JavaScript库 开发规则
Jan 31 Javascript
实现js保留小数点后N位的代码
Nov 13 Javascript
使用JavaScript链式编程实现模拟Jquery函数
Dec 21 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
Node.js学习入门
Jan 03 Javascript
微信小程序 商城开发(ecshop )简单实例
Apr 07 Javascript
Vue引入sass并配置全局变量的方法
Jun 27 Javascript
Vue下路由History模式打包后页面空白的解决方法
Jun 29 Javascript
JavaScript函数式编程(Functional Programming)组合函数(Composition)用法分析
May 22 Javascript
深入理解Vue keep-alive及实践总结
Aug 21 Javascript
微信小程序页面渲染实现方法
Nov 06 Javascript
Vue单文件组件开发实现过程详解
Jul 30 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在获取指定目录下的目录,在获取的目录下面再创建文件,多平台
2011/08/03 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
使用js+jquery实现无限极联动
2013/05/23 Javascript
JS实现表格数据各种搜索功能的方法
2015/03/03 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
实现JavaScript高性能的数据存储
2016/12/11 Javascript
js实现tab选项卡切换功能
2017/01/13 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
Angular 组件之间的交互的示例代码
2018/03/24 Javascript
RequireJS用法简单示例
2018/08/20 Javascript
js比较两个单独的数组或对象是否相等的实例代码
2019/04/28 Javascript
一文读懂ES7中的javascript修饰器
2019/05/06 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
Python模拟登录的多种方法(四种)
2018/06/01 Python
django session完成状态保持的方法
2018/11/27 Python
一篇文章搞懂Python的类与对象名称空间
2018/12/10 Python
python+requests接口压力测试500次,查看响应时间的实例
2020/04/30 Python
python能做哪方面的工作
2020/06/15 Python
Python爬虫过程解析之多线程获取小米应用商店数据
2020/11/14 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
2020/11/18 Python
微信浏览器取消缓存的方法
2015/03/28 HTML / CSS
naturalizer加拿大官网:美国娜然女鞋
2017/04/04 全球购物
新品发布会策划方案
2014/06/08 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
教师节班会主持词
2015/07/06 职场文书
2016年秋季新学期致辞
2015/07/30 职场文书
教师反邪教心得体会
2016/01/15 职场文书
《红领巾真好》教学反思
2016/02/16 职场文书
四则混合运算教学反思
2016/02/23 职场文书
游戏开发中如何使用CocosCreator进行音效处理
2021/04/14 Javascript
Css预编语言及区别详解
2021/04/25 HTML / CSS