首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单元测试ngComponentRouter -角1.5.x

单元测试ngComponentRouter -角1.5.x
EN

Stack Overflow用户
提问于 2017-03-27 19:31:20
回答 1查看 103关注 0票数 0

我正在尝试为一个角1.5构建基本单元测试,目的是A)练习单元测试,以及( B)熟悉在角1.5.x中基于组件的开发。我正在尝试对一个简单的组件进行单元测试,但我一直收到以下消息:

错误:由于以下原因,$injector:modulerr未能实例化模块应用程序: 错误:由于以下原因,$injector:modulerr未能实例化模块ngComponentRouter: 错误:$injector:nomod模块“ngComponentRouter”不可用!您要么拼错了模块名,要么忘记加载它。如果注册一个模块,请确保将依赖项指定为第二个参数。

我想了解一下如何将这个特定的依赖/模块注入到单元测试中。这是我的代码:

app.js

代码语言:javascript
复制
(function(){
    "use strict";

    const app = angular.module("app", ["ngComponentRouter"])

    app.value("$routerRootComponent", "componentApp");
})();

component-app.component.js

代码语言:javascript
复制
(function(){
    "use strict";

    angular.module("app").component("componentApp", {
        templateUrl: "/javascripts/component-app.component.html",
        controller: ["$router", function($router){
            $router.config([
                { path: "/users", component: "usersComponent", name: "Users" },
                { path: "/**", redirectTo: ["Users"]}
            ]);
        }]

    });
})();

component-app.component.spec.js

代码语言:javascript
复制
describe("componentApp component", function(){
    beforeEach(module("app"));

    var $componentController, componentApp;

    beforeEach(inject(function($injector){
        $componentController = $injector.get("$componentController");
        componentApp = $componentController("componentApp", { $scope: {}});
    }));

    it("componentApp component is defined", function(){
        expect(componentApp).toBeDefined();
    }); 
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-27 23:16:29

因此,有两个改变起了作用,首先我需要更改组件-app.Component.js:

代码语言:javascript
复制
angular.module("app").component("componentApp", {
    templateUrl: "/templates/component-app.component.html",
    $routeConfig: [
        { path: "/Users", name: "Users", component: "usersComponent" },
        { path: "/Home", name: "Home", component: "homeComponent"},
        { path: "/Profile/:id", name: "Profile", component: "profileComponent" },
        { path: "/**", redirectTo: ["Users"]}
    ]
});

我需要将该文件包含在karma.conf.js中:

代码语言:javascript
复制
module.exports = function(config) {
  config.set({

    basePath: "",
    frameworks: ["jasmine"],
    files: [
        "bower_components/angular/angular.js",       
        "bower_components/angular-mocks/angular-mocks.js",
        "bower_components/angular-component-router/angular_1_router.js",
        "javascripts/**/*.js"
    ],
    exclude: [        
    ],
    preprocessors: {
    },
    reporters: ["progress"],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ["Chrome"],
    singleRun: false,
    concurrency: Infinity
  });
};
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43054910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档