mymodule.js定义为:
angular.module('mymodule', []).factory('MyModule', function () { /* my code */ });
然后我有一个mocha测试脚本(test.js),如:
var chai = require('chai');
chai.use(require("chai-as-promised"));
var angular = require('angular');
require('mymodule.js');
当使用mocha运行test.js时,我收到一条错误,指出没有定义角度。
我试图使用angular.injector,如:
var angular = require('angular');
var injector = angular.injector(['mymodule']);
var mymodule = injector.get('MyModule');
然后我收到错误“无法实例化模块”,因为mymodule.js尚未加载。
是否有一种简单的方法可以使其正常工作?
答案 0 :(得分:1)
尝试将test.js中的var angular = ...
更改为global.angular = ...
<强>解释强>
由于mymodule.js与test.js的范围不同,因此在test.js中将angular
声明为var
将不会使其在mymodule.js中可访问。您必须将它附加到全局对象,以使其在任何地方都可用,而不需要它。