集成 Karma 和 Jasmine 进行单元测试

来源:互联网 发布:菜鸟物流打印软件 编辑:程序博客网 时间:2024/05/16 15:58

1、简介
单元测试:对每一个function进行独立测试,验证数据能否正确流入、流出
Jasmine:编写测试脚本
Karma:驱动测试脚本

2、准备工作
安装node.js,初始化 npm 包管理,创建 package.json 项目管理文件。

3、安装Karma
(1)在项目中安装karma
命令 E:\project\karmatest> npm i -D karma

(2)全局安装karma-cli
命令 E:\project\karmatest> npm i -g karma-cli

4、安装 Jasmine 和 chrome-launcher(浏览器的适配器)
命令 E:\project\karmatest> npm i -D jasmine-core karma-jasmine karma-chrome-launcher

5、创建 karma 配置文件
(1)初始化karma,配置项除了路径都填默认值即可,完成后即生成karma.conf.js文件
这里写图片描述

(2)启动 karma
命令:E:\project\karmatest> karma start

启动后,karma会自动打开chrome浏览器,出现如下画面,点击debug按钮,然后打开控制台,由于还未编写测试用例,此刻控制台中应该还没有打印值。
这里写图片描述

6、用 Jasmine 编写测试用例
(1)在项目目录下创建一个名为 test 的子文件夹来保存测试用例。然后在 test 文件夹中创建一个 unit 的文件夹来保存单元测试用例。

(2) 在项目目录下,创建一个名为 src 的子文件夹来保存我们的应用代码,在其中创建一个名为 add.js 的脚本文件,我们将测试它的工作是否正确。

(3) add.js代码:

function add(a, b){    return a + b;}

(4) 针对add方法写两个测试用例,保存到 ./test/unit/add.spec.js 文件中,一般我们约定测试用例的文件名以 .spec.js 为结尾。

describe('add方法的测试用例', function(){          it('用例1,这个用例必须成功', function(){        var result  = add( 2, 3 );        expect( result ).toBe( 5 );    });    it('用例2,这个用例必须失败', function(){        var result = add( 2, 3 );        expect(result).toBe( 6 );    })});

(5) 确认在我们 karma 的配置文件karma.conf.js中,包含了我们的测试用例。

 // list of files / patterns to load in the browser    files: [      'test/**/*.spec.js'    ],

(6)用第5步(2)的方式启动karma,已经启动的刷新刚刚的debug页面即可。观察控制台打印值。

附:Jasmine 常用语法,转自:http://blog.csdn.net/huangpb123/article/details/70168221