【问题标题】:Karma Error: [$injector:modulerr] Failed to instantiate module due to: (Index.html is working perfectly)Karma 错误:[$injector:modulerr] 无法实例化模块,原因是:(Index.html 运行良好)
【发布时间】:2018-04-20 21:48:16
【问题描述】:

所以我在 webstorm 中建立了一个 angular js 项目,除了业力测试套件之外,一切都正常工作

我将模型设置如下:

beforeEach(module('[modulename]'));

我的测试是:

it('should work', ((function() {
        //spec body
        expect(true).toBe(true);
    })));

工作并通过,但是

it('should work, does it?', (inject(function(_$http_) {
        //spec body
        $http=_$http_;
        expect(true).toBe(true);
    })));

不仅测试失败,而且突然我的模块不再加载:S

错误:[$injector:modulerr] 无法实例化 [modulename] 由于: 错误:[$injector:nomod] 模块 '[modulename]' 不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。

为什么即使对第一个测试(没有注入)进行两个测试似乎都可以正常工作 - 第二个测试仍然像之前所说的那样失败......

重要提示:如果我在浏览器窗口中运行我的应用程序,一切正常,因此错误必须在测试文件或其他内容中:S

我对 angular js 和 karma 比较陌生,所以我希望这不是一个愚蠢的问题。

【问题讨论】:

    标签: javascript angularjs unit-testing karma-jasmine angularjs-injector


    【解决方案1】:

    尝试使用 $httpBackend 而不是 $http。此外,注入和模拟应该在测试设置阶段的测试用例之外完成。对任何设置和实例化代码使用 beforeEach() 块。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-23
      • 2022-08-22
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      相关资源
      最近更新 更多