【问题标题】:How to ignore a run.js in Angular / Karma unit testing?如何在 Angular / Karma 单元测试中忽略 run.js?
【发布时间】:2015-05-22 19:13:06
【问题描述】:

我有一个文件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');
                }
            }
        });
    }
]);

这会在应用加载时运行。这通常是很好的行为。但是当我对控制器进行单元测试时,一切都乱套了。我不知道如何spymock 这是错误的。有什么想法吗?

谢谢!

【问题讨论】:

  • 您可以将您的应用程序分解为多个角度模块。将 run 块放在根模块上,只加载单元测试中需要的子模块

标签: javascript angularjs unit-testing karma-runner


【解决方案1】:

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

**/!(run).js

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

【讨论】:

    猜你喜欢
    • 2019-07-15
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    相关资源
    最近更新 更多