javascript - 如何在 Angular/Karma 单元测试中忽略 run.js?

标签 javascript angularjs unit-testing karma-runner

我有一个文件 run.js 有:

window.map.run([
    '$rootScope', '$location', 'cache', 'userCache',
    function($rootScope, $location, cache, userCache) {
        userCache.checkSession().then(function(result) {
            if(result.userId) {
                cache.set('login', 'successfulLogin', true);
                if($location.path() !== '/patients') {
                    $location.path('/patients');
                }
            }
        });
    }
]);

这会在应用加载时运行。这通常是很好的行为。但是当我对 Controller 进行单元测试时,一切都变得一团糟。我不知道如何spymock 以使其为假。有什么想法吗?

谢谢!

最佳答案

您可以通过在 karma.conf 中指定相关模式来排除 run.js文件

**/!(run).js

或者您可以将您的应用拆分为更小的模块,并在单元测试期间仅加载相关模块。

关于javascript - 如何在 Angular/Karma 单元测试中忽略 run.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30404266/

相关文章:

C# 异步任务 - 单元测试

javascript - 使用 sails.js 确认密码

javascript - 将数组拆分为 block

javascript - 当在数组中找到关键字时,循环遍历对象以提取属性名称的问题

javascript - 根据 AngularJS 中另一个选择元素的值设置选择选项

javascript - ngResource 在 $save() 之后从 POST 响应中检索唯一 ID

swift - 为什么 Alamofire 对单元测试的超时预期使用 30 秒?

visual-studio-2008 - VS2008 中的调试测试由于加载符号而变慢

javascript - jQuery 显示/隐藏在 Android 上不起作用

javascript - 按钮onclick不调用函数