首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

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

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 的一些相对高级的用法和技巧,会在后续的文章中进行介绍。
返回列表