gpt4 book ai didi

javascript - karma Jasmine 单元测试出现未知提供者错误

转载 作者:行者123 更新时间:2023-11-28 06:18:25 25 4
gpt4 key购买 nike

我有一个使用 Jasmine 框架创建的单元测试。当我将单个测试规范放入描述 block 时,我在 karma 控制台中获得了通过。如果我复制带有测试的描述 block ( it(); ),那么我突然开始遇到模块使用的依赖项的问题。

在控制台中,我收到有关未知提供商的错误。

这是我的简单测试:

 describe('service definition tests', function () {

it('should be defined', function () {
expect(sut).toBeDefined();
});

});

一切顺利。如果我复制此 block ,我会收到有关依赖项的错误。这很奇怪,因为我已经证明我可以测试第一个测试中定义的“sut”。

需要注意的一件事是,我有一个 beforeEach block ,用于加载模块并提供依赖项,而当我重复测试时,正是此依赖项出错。这是 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

最佳答案

我设法通过创建 myConfig 工厂的虚拟实现来解决此问题,以便测试文件使用它。

angular.module('app').factory('myConfig', function() {

var env = 'test';

return {
env: env
}
});

此代码位于与其余测试一起加载的 js 文件中。

关于javascript - karma Jasmine 单元测试出现未知提供者错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35747333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com