目前网上关于前端js测试框架jasmine功能介绍的文章少之又少,由于笔者最近接触js的测试,将选用jasmine作为测试框架,这里简单介绍一下jasmine在测试中的使用,后续还将对测试中遇到的问题和框架的使用经验进行分享。文章内容主要来源于对官网(http://pivotal.github.com/jasmine/)的翻译和其他一些零散的文档,以及笔者对该框架的一些理解,如有描述不清或理解偏差,欢迎拍砖
在javaScript测试框架jasmine介绍(一)中介绍了编写jasmine测试脚本的语法结构和一些基本的框架特性,在(二)中笔者继续介绍一些不是十分常用,但在某些场景的测试中可能会用到的框架特性。
先来介绍一下Spies:
Jasmine的测试替身被称作spies,spy可以保存任何方法及方法参数的调用痕迹。jasmine有特殊的匹配器来保证spies之间的相互作用。
toHaveBeenCalled这个matcher当spy被调用过时返回true。toHaveBeenCalledWith当参数列表匹配上任何一次spy的调用记录参数时返回true,下图中其余spc都不难理解,只解释,foo.setBar.calls.length为调用setBar的次数。
……………………
查看全文请点击下载:http://www.51testing.com/html/32/n-827732.html
为了创建各种spies的mock,可以使用jasmine.createSpyObj并传一个字符串数组作为参数。它返回的是一个对象,每个String都是该对象的一个属性,成为一个spy,如下图红框的4个字符串都是spy
jasmine.any引用构造函数或者类名作为期望值,和真是的构造函数匹配时返回true
jasmine的Mock Clock是一款有效的测试组件,有能力使用setTimeout或者setInterval回调函数。它使timer回调函数同步,使它们更容易测试
通过在spec或者suite里调用jasmine.Clock.useMock来安装Mock clock。
通过jasmine.Clock.tick方法来标记clock以触发注册的回调函数,这个方法传一个milliseconds.