javaScript测试框架jasmine介绍(一)

发表于:2012-8-10 10:54

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:公羊 羽    来源:TaoBao QA Team

  目前网上关于前端js测试框架jasmine功能介绍的文章少之又少,由于笔者最近接触js的测试,将选用jasmine作为测试框架,这里简单介绍一下jasmine在测试中的使用,后续还将对测试中遇到的问题和框架的使用经验进行分享。文章内容主要来源于对官网的翻译和其他一些零散的文档,以及笔者对该框架的一些理解,如有描述不清或理解偏差,欢迎拍砖

  Jasmine是一种js测试框架,它不依赖于其它任何的js框架,不需要DOM,且清爽、明确的语法使得使用者很容易地进行白盒测试

  先来大致了解jasmine用例的语法结构:

  测试suite开始于全局方法describe,这个方法含两个参数:一个String,一个function,String用来描述一个spec suite(笔者将spec理解为测试主体,而suite就是spec的集合),而function的内容就是suites

  spces用jasmine的全局方法it来定义,it和describe一样,包含两个参数(一个String,一个function),String用来描述spec,而function的内容就是测试主体。一个spec可以包含一个或多个expections。

  一个expectation在jasmine中就是一个断言,返回true或false。只有当一个spec中的expections全为ture时,这个spec显示通过,否则失败

  最基本的jasmine用例结构如下图:

  因为describe和it是function,所以可以包含可执行的代码。由于javaScript的语法规则,定义在describe中的变量在it里是有效的,如下图

  Ecpections由方法expect构建,带有实际值,它和Matcher方法链接在一起,Matcher方法带期望值。

  每个matcher在真实值和期望值之间进行比较,返回boolean。jasmine通过exception的返回来判定spec是通过还是失败

  任何matcher都能通过在expect调用matcher前加上not来判断一个否定的断言,如下图

  Jasmine含有一个丰富的matcher集,也可以自己定义matcher来实现一个特殊的断言,下面简单介绍一下各种matcher的使用,对于简单易理解的读者可以通过下面截图中it的一个参数字符串的意思来理解,复杂的笔者会做出相应的说明

  下图的两个matcher都为判等,toBe()与toEqual的区别相当于js中==和===的区别,前者判断值,后者判断值和类型

31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号