Karma错误:[$ injector:modulerr]由于以下原因无法实例化模块:( Index.html工作正常)

时间:2017-11-08 09:20:43

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

所以我在webstorm中设置了一个角度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

我对角js和因果报应该是新手,所以我希望这不是一个愚蠢的问题。

1 个答案:

答案 0 :(得分:1)

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