Board logo

标题: 使用 Karma + Jasmine 构建 Web 测试环境(1)Jasmine 简介 [打印本页]

作者: look_w    时间: 2018-11-21 20:34     标题: 使用 Karma + Jasmine 构建 Web 测试环境(1)Jasmine 简介

Jasmine 简介Jasmine                框架介绍Jasmine是一个针对 JavaScript 的行为驱动开发的测试框架,不依赖于任何其他的 JavaScript                框架或者文档对象模型(DOM),最新版本改进了对 Node.js 的支持,同时还做了一些提升内部质量的工作。
图 1. Jasmine                    框架它的主要特点:
项目Git 仓库地址
获取安装包
可以在开源社区网站下载最新的 Jasmine 安装包, 目前的 Standalone 的最新版本是 2.8.0. 下载地址
也可以使用 npm 命令安装(需要先安装 Node.JS)
npm install --save-dev jasmine
配置安装
将下载后的.zip 文件包解压缩,如下的目录结构:
图 2. 目录结构目录结构
其中 lib 文件夹中包含 Jasmine 的源代码。SpecRunner.html 是 Jasmine 的一个完整示例,用浏览器打开                SpecRunner.html,即可看到执行的结果。
Jasmine                的基本概念Suites & Specs
Suites 用来表示测试集的概念,它由很多的测试用例构成。Specs 就是组成它的具体的测试用例,每一个 Spec                就是一个测试用例,用于测试应用中的某个功能。
Expectations
Jasmine 使用断言(Expectation)的方式来执行测试结果,每个 expectation 可以是 true 或者 false。如果 it                方法中的所有测试结果都是 true,则通过测试。反之,有任何一个断言是 false,则测试失败。
Matchers
每个 Matcher 的返回结果是一个布尔值,它的作用就是在实际值和期望值之间作比较。同时它负责通知 Jasmine,此次 expectation                的执行结果。Jasmine 会裁定相应的测试用例是通过还是失败。任何的 Matcher 在调用方法之前,都可以使用 not                来"装饰",从而改变匹配结果。
Setup and Teardown
为了使每一个测试用例,都可以重复的执行 setup 与 teardown 代码,Jasmine 提供了全局的 beforeEach 和                afterEach 方法。beforeEach 方法会在每一个测试用例执行前运行,而 afterEach 方法在每个测试用例执行后被调用。
如果在测试用例中使用到多个相同的变量,我们可以在全局的 describe 代码块中定义这些变量,而将变量的初始化代码放在 beforeEach                方法里,并在 afterEach 方法中重置这些变量的值。
嵌套的 describe
Jasmine 支持 describe 嵌套。很显然,这个时候的测试集呈现树状组织结构。而 Jasmine 执行时会遍历树状结构,按顺序执行每个                beforeEach 方法,it方法,以及对应的 afterEach 方法。
跳过测试代码块
Suites 和 Specs 分别可以用 xdescribe 和 xit 方法来禁用。运行时,这些 Suites 和 Specs                会被跳过,也不会在结果中出现。




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0