零散的笔记。
6. Jasmine
Jasmine是一个用于测试JavaScript代码的行为驱动开发框架。
6.1 细则套件(describe())
Jasmine套件的核心部分是describe函数。
describe('Unit test: MainController', function() {
});
- 1
- 2
describe()函数带有两个参数,一个字符串(细则套件名称、描述),一个函数(封装了测试套件)
可嵌套。
6.2 定义一个细则(it())
通过调用it()函数来定义一个细则.
it()函数带有两个参数:一个字符串(是细则的标题或者描述),一个函数,包含了一个或多
个用于测试代码功能的预期(expect())。
一个所有预期都为true的测试就算是一条
通过的细则.
describe('A spec suite', function() {
it('contains a passing spec', function() {
expect(true).toBe(true);
});
});
7. 预期(expect)
使用expect()函数来建立预期。
expect()函数带有一个单值参数。这个参数被称为真实值。
要建立一个预期,我们给它串联一个带单值参数的匹配器函数(like toBe()),这个参数就是期望值。
可以通过在调用匹配器之前
调一个not来创建测试的否定式。
describe('A spec suite', function() {
it('contains a passing spec', function() {
expect(true).toBe(true);
});
it('contains another passing spec', function() {
expect(false).not.toBe(true);
});
});
7.1 内置的匹配器
- toBe
- toEqual
- toMatch(正则匹配)
- toBeDefined
- toBeUndefined
- toBeNull
- toBeTruthy
- toBeFalsy
- toContain
- toBeLessThan
- toBeGreaterThan
- toBeCloseTo(指定精度内)
- toThrow(异常) 、
- 创建自定义匹配器
调用addMatcher()函数,带入一个值:
describe('A spec suite', function() {
this.addMatchers({
toBeLessThanOrEqual: function(expected) {
return this.actual <= expected;
}
});
});
具体参考:http://blog.csdn.net/u012223913/article/details/50337401
expect(x).toEqual(y); 当x和y相等时候通过
expect(x).toBe(y); 当x和y是同一个对象时候通过
expect(x).toMatch(pattern); x匹配pattern(字符串或正则表达式)时通过
expect(x).toBeDefined(); x不是undefined时通过
expect(x).toBeUndefined(); x 是 undefined时通过
expect(x).toBeNull(); x是null时通过
expect(x).toBeTruthy(); x和true等价时候通过
expect(x).toBeFalsy(); x和false等价时候通过
expect(x).toContain(y);x(数组或字符串)包含y时通过
expect(x).toBeLessThan(y); x小于y时通过
expect(x).toBeGreaterThan(y); x大于y时通过
expect(function(){fn();}).toThrow(e); 函数fn抛出异常时候通过