【发布时间】:2016-06-15 07:30:06
【问题描述】:
我有一个使用 Jasmine 框架创建的单元测试。当我在描述块中放置一个测试规范时,我在业力控制台中获得通过。如果我复制带有测试的描述块( it(); ),那么我突然开始遇到模块使用的依赖项问题。
在控制台中,我收到有关未知提供程序的错误。
这是我的简单测试:
describe('service definition tests', function () {
it('should be defined', function () {
expect(sut).toBeDefined();
});
});
一切顺利。如果我复制此块,我会收到有关依赖项的错误。这很奇怪,因为我已经证明我可以测试第一个测试中定义的“sut”。
需要注意的一点是,我有一个 beforeEach 块来加载模块并提供一个依赖项,当我复制测试时,正是这种依赖项出错。这是 beforeEach:
var mockConfig = {};
beforeEach(function () {
module('app');
module(function ($provide) {
$provide.value('myConfig', mockConfig);
});
});
问题必须与 beforeEach 相关,因为我得到的错误是关于 myConfig 依赖项。
这是错误:
uncaught Error: [$injecor:unpr] Unknown provider: myConfigProvider <- myConfig <- authorisation
http://errors.angularjs.org/1.4.6/$injector/unpr?p0=myConfiProvider
【问题讨论】:
-
我还有一点。我创建了一个新的 js 文件,其中包含 beforeEach 块。现在我可以在原始测试文件中创建更多测试。但是,如果我在其中创建另一个带有测试的文件,我会再次遇到依赖错误。
标签: javascript angularjs jasmine karma-runner karma-jasmine