尝试注入依赖项时出现"未知提供程序"错误

 由来只有新人笑_谁能记得旧人哭 发布于 2023-02-08 12:47

我正在尝试使用Jamsine对Angular服务进行单元测试,而我仍然坚持如何为该服务注入依赖项.

这是我的app.js文件,精简到要领:

"use strict";

angular.module("myApp", []);

(function (app) {

    app.factory("taskService", function ($http) {
        return {
            loadTasks: function (callback) {                
            }
        };
    });

    app.controller("AppController", function ($scope, $http, taskService) { 
    });
} (angular.module("myApp")));

这是Jasmine测试,再次被剥离到要领:

describe("taskService tests", function () {

    var svc = {};

    beforeEach(function () {

        angular.module("myApp");    

        // I also tried this, but not luck there either
        // angular.module("myApp", ['taskService']);            

        inject(function (taskService) { // Fails to inject the service.
            svc = taskService;
        });
    });    
});

运行测试时,我得到的错误inject无法解决依赖关系taskService:

http://docs.angularjs.org/error/$injector:unpr?p0=taskServiceProvider%20%3C-%20taskService

我被困在这里做什么.当运行应用程序本身时,服务注入没有问题,例如

app.controller("AppController", function ($scope, $http, taskService) {

但我不确定如何在测试中手动进行注射.

1 个回答
  • 问题是你需要myApp使用angular.mocks非普通角度加载模块.它与注射物质相同,你不能使用平角,你需要angular.mocksinject()

    所以只需改变:

    angular.module("myApp");
    

    对于:

    module("myApp");
    

    要么:

    angular.mock.module("myApp");
    

    请注意,这module()只是一个简写angular.mock.module()

    干杯.

    2023-02-08 12:51 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有