JavaScript 单元测试框架:Jasmine 初探(3)与其他工具的集成及例子
 
- UID
- 1066743
|

JavaScript 单元测试框架:Jasmine 初探(3)与其他工具的集成及例子
与其他工具的集成Karma 在 Java 中,用 JUnit 做单元测试, 用 Maven 进行自动化单元测试;
同样相对应的 JS 中,则可以用 Jasmine 做单元测试,用 Karma 自动化完成单元测试。
Karma 作为 JavaScript 测试执行过程管理工具,可用于测试所有主流 Web 浏览器。下面简单介绍一下 Karma 与 Jasmine 的集成。
首先,下载安装 Karma。
初始化 karma 配置文件 karma.conf.js。
安装集成包 karma-jasmine。
修改 karma.conf.js 配置文件。
需要修改:files 和 exclude 变量。其中 autoWatch 设置为 true,这样如果修改测试文件并保存后,Karma 会检测到然后自动执行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| module.exports = function (config) {
config.set({
basePath: '',
frameworks: ['jasmine'],
files: ['*.js'],
exclude: ['karma.conf.js'],
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
captureTimeout: 60000,
singleRun: false
});
};
|
启动 karma,自动执行单元测试。
1
| F:\Projects\karma>karma start karma.conf.js
|
另外,Jasmine 也可以与持续集成工具 Jenkins 进行集成。
一个 Jasmine 的完整例子 Jasmine 在 JavaScript 中编译,必须被包含在一个 JS 环境中,比如一个 web 网页,来运行。JavaScript 被包含,通过一个<script>标签,然后所有以上的 specs 可以通过 Jasmine 计算和记录。这样 Jasmine 可以运行所有这些 specs。此页面被认为是一个"runner"运行者。
下面通过一个具体的例子来介绍通过 runner 怎样执行 Jasmine 的 suite。
首先,创建 HTMLReporter,Jasmine 调用它,来提供每个 Spec 和 Suite 的结果。
报告负责展现结果给用户。
代理为报告过滤 specs。允许点击某个结果中的 suites 或者 specs 来只运行 suite 的子集合。
当页面完成加载时运行所有的测试-然后确认运行任何之前的 onload 句柄。
见下面清单 9,完整代码示例见附件。
清单 9 .代码示例1
2
3
4
5
6
7
8
9
10
11
12
13
14
| <script type="text/javascript">
var jasmineEnv = jasmine.getEnv();
var htmlReporter = new jasmine.HtmlReporter();
jasmineEnv.addReporter(htmlReporter);
jasmineEnv.specFilter = function(spec) {
return htmlReporter.specFilter(spec);
};
window.onload = function() {
jasmineEnv.execute();
};
</script>
|
完整例子可以在附件中的 Reporter.html 运行,结果见下图:
图 3.测试用例结果 结语 通过本文的介绍,我们可以了解 Jasmine 的一些基本概念和用法,为组织项目的测试打下基础,为项目代码的可靠性和稳定性提供保证,并介绍了 Jasmine 和其他框架的集成。Jasmine 的一些相对高级的用法和技巧,会在后续的文章中进行介绍。 |
|
|
|
|
|