Page 254 - AngularJS权威教程
P. 254
234 第 19 章 测试
这些预期都是函数,执行时评估为true或false。一个所有预期都为true的测试就算是一条
通过的细则,一条细则有一个或者多个预期为false的话,就是个失败的测试。
一个简单的测试可能像这样:
describe('A spec suite', function() {
it('contains a passing spec', function() {
expect(true).toBe(true);
});
});
这个细则的标题,追加到describe()标题之后,就成为了“一个细则套件包含一条已通过
的细则”。
19.10 预期
测试应用时,我们会想要断言条件在应用的不同阶段是符合我们期望的。我们要写的这个测
试读起来就像这样:“如果我们点击这个按钮,就期望有这个结果。”例如,“如果我们导航到首
页,我们期望欢迎信息会被渲染出来。”
使用expect()函数来建立预期。expect()函数带有一个单值参数。这个参数被称为真实值。
要建立一个预期,我们给它串联一个带单值参数的匹配器函数,这个参数就是期望值。
这些匹配器函数实现了一个在真实值和期望值之间的布尔比较。可以通过在调用匹配器之前
调一个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);
});
});
Jasmine自带一大堆内置的匹配器,我们可以在测试应用的过程中使用。要写一个自定义的
匹配器也很容易。
19.10.1 内置的匹配器
1. toBe
toBe()匹配器使用JavaScript操作符===来比较值:
describe('A spec suite', function() {
it('contains passing specs', function() {
var value = 10,
another_value = value;
expect(value).toBe(another_value);
expect(value).not.toBe(null);
});
});