Page 252 - AngularJS权威教程
P. 252

232  第 19 章  测试


                      port: 9876,
                      colors: true,
                      logLevel: config.LOG_INFO,
                      autoWatch: true,
                      browsers: ['Chrome'],
                      captureTimeout: 60000,
                      singleRun: false
                  });
                 };

                        注意我们没有排除main.js,它是应用开始的文件。


                 鉴于Karma会提供app/js目录下的文件,我们来给Karma文件服务器配置一个起始的上下文,
             用相对路径加载模块。因为我们想要测试的baseUrl和源码文件在同一目录,所以需要把basePath
             设置成本地目录(.)。
                 2. test/test-main.js

                 我们的test-main.js文件会代替主应用文件,提供引用测试文件的能力,无需把应用真正启动
             起来。
                 Karma会包含所有在数组window.karma.files里面的文件,所以我们会在这里发现我们的测试
             文件。然后,就可以正常配置RequireJS了:

                 var tests = [];
                 for (var file in window.__ karma__.files) {
                   if (window. __karma__.files.hasOwnProperty(file)) {
                     if (/Spec\.js$/.test(file)) {
                        tests.push(file);
                   }}}

                  requirejs.config({
                    baseUrl: 'app',
                    paths: {
                      'jquery': 'lib/jquery',
                      'angular': 'lib/angular',
                      'angularRoute': 'lib/angular-route',
                      'angularMocks': 'lib/angular-mocks',
                    },
                    shim: {
                      'underscore': {
                        exports: '_'
                      }
                   },

                   // 让Require.js加载这些文件(我们所有的测试)
                   deps: tests,
                   // RequireJS完成之后就启动测试
                   callback: window.__karma__.start
                 });
                 测试看起来将和默认不使用RequireJS的情况不太一样。可以简单地像平常一样使用RequireJS,
             把测试放在define()里。例如:

                 define([
                   'app', 'jquery', 'angular',
                   'angular', 'angularRoute', 'angularMocks'
   247   248   249   250   251   252   253   254   255   256   257