Page 274 - AngularJS权威教程
P. 274

254  第 19 章  测试


                       location.path('/definitely/not/a/_route');
                       rootScope.$digest();
                       expect(route.current.controller)
                         .toBe('HomeController')
                 });
                 要运行这些测试,需要确保Grunt服务器在运行:
                 $ cd myApp
                 $ grunt server
                 如果在应用文件中运行karma start karma.conf.js,能立刻在终端看到输出,如图19-3所示。



















                                              图19-3  单元测试路由
                 我们做了很多工作来建立路由测试,却只测试了一个路由地址。既然我们是为用户功能测试
             流程的变化,可以把这些工作移到应用上,在端到端测试中更严格地测试它。
                 2. 端到端的路由测试

                 在端到端测试中,无须模拟Angular的任何部分:我们是在黑盒测试这个应用。用这种方式,
             只需描述我们想要应用如何表现,并相应编写测试。
                 在编写端到端测试时,需要思考用户是如何在我们的应用中进行导航的。我们的测试应当是
             可读的:把用户带到特定页面,描述他们在应用中应当有什么样的体验。

                 所有端到端测试的基准测试只有下面几行:
                 describe('E2E: NAME', function() {
                   // 我们的测试代码放在这里
                 });
                 就是这样。我们来使用browser() API方法在浏览器中修改iframe的源。

                 要测试index路由,我们要把浏览器指向index路由,然后确认地址也真的就在首页。
                 describe('E2E: Routes', function() {
                   it('should load the index page', function() {
                      browser().navigateTo('/#/');
                      expect(browser().location().path()).toBe('/');
                    });
                  });

                 要运行这个测试,需要确保Grunt服务器在运行:
   269   270   271   272   273   274   275   276   277   278   279