Karma 和 Jasmine 学习笔记

  1. 1. Jasmine
  2. 2. Karma
    1. 2.0.1. 参考链接

Jasmine

Jasmine 是一个用于编写 js 测试的框架。

下载

$ git clone https://github.com/pivotal/jasmine.git
$ mkdir jasmine && cd jasmine
$ mv jasmine/dist/jasmine-standalone-2.0.0.zip jasmine/jasmine
$ cd jasmine/jasmine
// 解压
$ unzip jasmine-standalone-2.0.0.zip

// 除了使用 git 也可以使用 bower 来安装 $ bower install jasmine

创建测试文件

// test.html
<!-- 引入jasmine依赖文件 -->
<link rel="stylesheet" type="text/css" href="jasmine/lib/jasmine-2.0.0/jasmine.css">
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine.js"></script>
 <script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/jasmine-html.js"></script>
<script type="text/javascript" src="jasmine/lib/jasmine-2.0.0/boot.js"></script>

<!-- 编写需要测试的代码 -->
<script>
  function sayHello (name) {
    return 'Hello ' + name;
  }
</script>

<!-- 编写测试脚本 -->
<script>
  describe('A suite of basic functions', function () {
    it('sayHello', function () {
      var name = 'Xiaolai';
      var exp = 'Hello Xiaolai';
      expect(exp).toBe(sayHello(name));
    })
  })
</script>        

浏览器打开 test.html 即可看到测试效果

更多的 jasmine 语法,查看官方文档

Karma

Karma 是一个基于 NodeJS 的js测试执行过程管理工具。

安装

$ npm install -g karma-cli        

初始化

$ mkdir karma && cd karma
$ karma init
// 根据提示完成初始化

安装 jasmine 插件

$ npm install karma-jasmine -g        

创建源文件

// source.js
function reverse(name){
    return name.split("").reverse().join("");
}     

创建测试文件,使用 jasmine 语法编写

// test.js
describe("A suite of basic functions", function() {
       it("reverse word",function(){
            expect("DCBA").toEqual(reverse("ABCD"));
        expect("Xiaolai").toEqual(reverse("ialoaiX"));
    });
});

修改配置文件

// karma.conf.js 修改以下部分
files: ['*.js']
exclude: ['karma.conf.js']

启动测试

$ karma start karma.conf.js    

参考链接