参考资料:
http://www.ibm.com/developerworks/cn/web/1404_changwz_jasmine/
http://www.cnblogs.com/zhcncn/p/4330112.html
http://www.tych.io/tech/2013/07/10/unit-test.html
先配置Nodejs的jasmine测试环境:
http://jasmine.github.io/2.0/node.html
安装node环境的jasmine
npm install -D jasmine
npm install -g jasmine
在project中执行jasmineinit,就可以在node工程中生成spec目录,目录结构
分析jasmine.json文件,
看这个json配置文件,spce_files属性值,也就是指定单元测试的源文件;
编写一个hello.spet.js,放在spec目录下,简单写几行
describe("A suite is just a function", function() {
var a;
it("and so is a spec", function () {
a = true;
expect(a).not.toBe(true);
});
});
然后在根目录执行 jasmine,查看结果:
再学习基本概念:
1. 基本概念:
Jasmine不依赖任何框架,适用于所有的js代码。
BDD(行为驱动开发,Behaviour Driven Development)方式。
名词:
Ø Suites,测试集。以函数describe(string, function)封装 。
String:测试组名称,
Function:测试组函数
一个Suite(describe)包含多个Specs(it),一个Specs(it)包含多个断言(expect)。
Ø Setup 和Teardown操作
beforeEach():在describe函数中每个Spec执行之前执行。
afterEach(): 在describe函数中每个Spec数执行之后执行。
beforeAll():在describe函数中所有的Specs执行之前执行,但只执行一次,在Sepc之间并不会被执行。
afterAll(): 在describe函数中所有的Specs执行之后执行,但只执行一次,在Sepc之间并不会被执行。
Ø 嵌套Suite
describe函数可以嵌套,每层都可以定义Specs。这样就可以让一个Suite由一组树状的方法组成。
Ø Specs
Specs表示测试用例,以it(string,function)函数封装。
Ø Expectations
Ø Matchers
此外,也需要统计代码覆盖率,比如用blanket框架 http://blanketjs.org/