代码编织梦想

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

学习angular单元测试 工欲善其事,必先利其器 一起来看看这个新东西


提示:以下是本篇文章正文内容,下面案例可供参考

一、karma

Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma。Karma是一个让人感到非常神秘的名字,表示佛教中的缘分,因果报应,比Cassandra这种名字更让人猜不透!

Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行,通过console.log显示测试结果。

二、jasmine

DD(Test Driven Development)测试驱动开发,是敏捷开发中提出的最佳实践之一。jasmine很有意思的提出了BDD(Behavior Driven Development)行为驱动开发.

测试驱动开发,对软件质量起到了规范性的控制。未写实现,先写测试,一度成为Java领域研发的圣经。随着Javascript兴起,功能越来越多,代码量越来越大,开发人员素质相差悬殊,真的有必要建立对代码的规范性控制。jasmine就是为团队合作而生。

Jasmine是一个用来编写Javascript测试的框架,它不依赖于任何其它的javascript框架,也不需要对DOM。它有拥有灵巧而明确的语法可以让你轻松的编写测试代码。

jasmine的结构如下:

describe("A suite", function() {
var foo;
beforeEach(function() {
foo = 0;
foo += 1;
});
afterEach(function() {
foo = 0;
});
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
})

每个测试都在一个测试集中运行,Suite就是一个测试集,用describe函数封装。 Spec表示每个测试用例,用it函数封装。通过expect函数,作为程序断言来判断相等关系。setup过程用beforeEach函数封装,tearDown过程用afterEach封装。

三、单元测试的好处

我们先来看看我认为在解决方案中使用单元测试的主要原因…

1.改进实现的设计

开始编写一个功能而不给设计带来太多的思考是开发人员非常常见的错误。使用单元测试将强制思考并重新考虑设计,如果您使用TDD,则影响会更大。

2.允许重构

既然你已经有测试确保你所有的东西都能按预期工作,你可以很容易地添加对代码的修改,确保你没有添加任何错误。

3.添加新功能而不会破坏任何内容

当您添加新功能时,您可以运行测试以确保您不会破坏应用程序的任何其他部分。

还有更多,但这三个在任何项目上都是如此巨大的胜利,对于我来说,这些赢利是封闭式的。但如果你不相信,让我们再提几个。

测试是很好的文档。

4.测试使开发人员对他们的工作更有信心。

你可以说他们所有的好处都是以很高的成本来实现的,但是这完全是错误的。所有使用单元测试可能花费的时间与以后在您引入新功能或进行任何重构时要节省的时间相比将会很小。花在解决错误上的时间要比没有使用单元测试时大大缩短。


参考文章:http://www.uml.org.cn/test/2019031213.asp?artid=21753
详细简介:https://segmentfault.com/a/1190000009769787

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接: https://blog.csdn.net/qq_43738982/article/details/110948859

vue-cli3中使用vue-amap(高德地图插件)-爱代码爱编程

npm安装 可以先看一眼amap的文档 熟悉里面的一些插件和apihttps://elemefe.github.io/vue-amap/#/zh-cn/introduction/install//安装命令 npm install vue-amap --save main.js文件配置import VueAMap from 'vue-amap' //引

VUE搜索表格的本地内容-爱代码爱编程

我们经常写表格,然后对表格进行搜索,一般搜索可以向后台请求搜索,另种是页面本地进行搜索。这里我采用的是本地进行内容搜索,需求是输入内容,匹配id、name、code、note列,若存在,就列出来。        百度很多出来的搜索方法,都没有实现,我自己写的这个可以,要先理解它的意思,自己可以参照复写,直接复制估计用不了,因为我只贴了关键部分。     

AST语法树和babel原理-爱代码爱编程

AST(抽象语法树) 在计算机科学中,抽象语法树(abstract syntax tree 或者缩写为 AST),或者语法树(syntax tree),是源代码的抽象语法结构的树状表现形式,这里特指编程语言的源代码。树上的每个节点都表示源代码中的一种结构。 无论是LL(1)文法,还是LR(1),或者还是其它的方法,都要求在语法分析时候,构造出相同的语法

mui的下拉刷新上拉加载-爱代码爱编程

mui上拉加载、下拉刷新踩坑记录 关于mui这个框架也没啥多说的,自己在练习的时候稍微使用了下,正常使用嘛~~额也就那样吧,遇到不正常的地方就。。。比如弹框里面的放的数据超过了弹框的高度,在浏览器中调试是支持滑动的,在手机端就…再比如这个上拉加载和下拉刷新…别说了,太扯了… 当我用到上拉加载时,看到的官方文档是这样子的: mui.

element 多个el-input-number 设置公用max-爱代码爱编程

 使用计算属性实现 <div v-for="(item, index) in csObj" :key="index">      <el-input-number          v-model="item.selectNum"          :min="0"          :max="maxQuantit?cs1(i

mockjs使用方法-爱代码爱编程

在我们的实际开发过程中,经常性的会前端进程比较快,导致调试页面时没有数据支持,需要等待后台接口,其实我们可以通过使用mockjs来模拟自己需要的数据,然后让后台配合我们模拟的字段来写接口,这样前端就可以自行模拟逻辑了,那么mockjs要如何使用呢?这里以在vue中使用为例首先是安装 npm install mockjs --save / yarn add

记录Angular打包dist文件没有index.html的问题-爱代码爱编程

记录Angular打包dist文件没有index.html的问题 最近新学angular 踩了很多坑记录一下 angular打包方式: ng build --prod --no-extract-license ng build --prod --aot --no-extract-license ng build --prod --

2020/12/09 angular-cli的配置文件汇总-爱代码爱编程

文件目录 e2e test-》 端到端(end-to-end)或者UI测试是一种测试方法,它用来测试一个应用从头到尾的流程是否和设计时候所想的一样。简而言之,它从一个用户的角度出发,认为整个系统都是一个黑箱,只有UI会暴露给用户。 node_modules->node_modules是安装node后用来存放用包管理工具下载安装的包的文件夹。

angular指令操作dom节点修改样式属性等-爱代码爱编程

在父节点不能直接取得时,通过确定的孙孙子节点不断查找父节点来改变一些样式 <a appChangeZIndex>加入指令的节点</a> //以下为指令里的代码: import { Directive, ElementRef, HostListener, Renderer2 } from '@angular/core'; @Dir

Nginx windows环境下发布Angular10 (webpack 打包)-爱代码爱编程

Nginx 首先先下载nginx 解压. 解压出现目录如下. 第二步, 打包angular,我的angular项目是generator-jhipster生成的, 直接执行 npm run webpack:prod, 打出开发环境. 把项目里 target\classes里面的 static文件夹直接复制进nginx的html目录里面, 然后开始配置

angular传图片文件到后台-爱代码爱编程

HTML: <div> <label for="file">选择文件</label> <input type="file" id="file" (change)="postFile($event.target.files)"> </div> ts: public postFile

AngularJs双向绑定原理-爱代码爱编程

AngularJs双向绑定 一、什么是AngularJS二、什么是数据绑定三、什么是双向绑定四、双向绑定的实现 一、什么是AngularJS AngularJS是一个JavaScript框架,它诞生于2009年,由Misko Hevery 等人创建,后为Google所收购。是一款优秀的前端JS框架,已经被用于Google的多款产品当中。 A