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);
                   });
                 });
   249   250   251   252   253   254   255   256   257   258   259