仅当 运行 karma jasmine 测试时有条件地将 ngMock 加载到应用程序中

Conditionally load ngMock into app only if running karma jasmine tests

我在包含 ngMock 时加载我的应用程序时遇到问题,所以我只想在 运行 我的测试时加载它,因为它工作正常。 karma 运行测试时是否设置了标志或某种 isTesting() 函数?在为我的应用程序创建依赖项数组时,我可以参考一些东西。

我最后只是检查是否存在一个全局变量,该变量只有在测试 类 加载后才会被设置,我想这很明显,但我有点希望 karma.isRunning 属性 之类的...

无论如何,我的解决方案看起来有点像:

var dependencies = [
    'ui.router',
    'ngAnimate',
    'ngSanitize',
];
if (typeof APP_TEST !== "undefined")
    dependencies.push("ngMock");

angular.module('MyApp', dependencies)...

请记住,测试 类 需要在 加载主应用文件 之前加载