Angular / Jasmine无法注入控制器

托比·艾吉特(Toby Eggitt)

我在开始使用Jasmine和AngularJS时遇到了麻烦。我尝试创建一个最小的示例,该示例主要源自有角度的文档:

我在testme.js中有一个模块和一个控制器:

(function(){
    "use strict";
    let cont = function($scope) {
        $scope.data = 99;
    };
    let app = angular.module('Test', []);
    app.controller('Cont', cont);
}());

我有一个测试TestSpec.js

"use strict";
console.log('launching test...');
describe('Test a test', function(){
    console.log('in describe...');

    beforeEach(angular.module('Test'));

    it('should create a number', inject(function($controller){
        let scope = {};

        console.log('in test...');
        let ctrl = $controller('Cont', {$scope:scope}); // fails here
        console.log('got controller...');
        expect(scope.data).toBe(99);
        console.log('test completed...');
    }));
});

还有一个SpecRunner.html

<!DOCTYPE html>
<html data-ng-app="Test">
    <head>
        <link rel="shortcut icon" type="image/png" href="jasmine/lib/jasmine-2.4.1/jasmine_favicon.png">
        <link rel="stylesheet" href="jasmine/lib/jasmine-2.4.1/jasmine.css">
        <script src="jasmine/lib/jasmine-2.4.1/jasmine.js"></script>
        <script src="jasmine/lib/jasmine-2.4.1/jasmine-html.js"></script>
        <script src="jasmine/lib/jasmine-2.4.1/boot.js"></script>

        <script src="scripts/angular.js"></script>
        <script src="scripts/angular-mocks.js"></script>

        <script src="scripts/testme.js"></script>    
        <script src="test/TestSpec.js"></script>
    </head>

    <body data-ng-controller="Cont">
        <h1>Value is {{data}}</h1>
    </body>
</html>

好像启动了,我收到消息了

在描述中启动测试...在测试中...

但在TestSpec.js中尝试执行我标记为//的行失败。这告诉我,我没有设法检索控制器。不用说,我不明白为什么(关于这个主题有很多问题,但就我所知,这些问题似乎都不适用)。

哦,如果需要的话,我使用的是角度1.5。这是各种错误的屏幕截图。

谢谢!托比

那将是烧瓶

错误在这里

beforeEach(angular.module('Test'));

应该是module

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将复杂的Angular控制器注入Jasmine

Angular Typescript:无法在控制器中注入$ filter

Angular js控制器多次注入

从Angular指令向Angular控制器中注入变量

Angular的Jasmine测试找不到我的控制器

在Angular控制器中使用vm进行Jasmine测试

无法实例化Angular控制器

Angular控制器无法获取“ this”

Angular JS无法识别控制器

无法在Angular Js中声明控制器

无法使用urlRouterProvider Angular调用控制器

无法从控制器动态禁用 FormArray(Angular 5)

无法访问控制器内部的Angular 2属性

无法获得简单的Angular控制器来显示值

控制器(ANGULAR JS)无法读取工厂嵌套的数据

Angular控制器无法与anchorscroll一起使用

控制器无法访问Angular Service变量

Angular新路由器将$ scope注入控制器

使用Karma和Jasmine在Angular JS中测试父控制器范围的变量

未知提供程序:使用Jasmine测试Angular控制器时,$ scopeProvider

TypeError:$ scope在Jasmine的Angular控制器单元测试中未定义

控制器Angular的演出

如何将范围内的变量注入Angular控制器?

Angular指令是否需要依赖注入到控制器中?

将angular-ui注入到我的控制器中的问题

将Angular服务注入控制器会导致$ injector:unpr错误(使用AngularBooter)

将服务注入控制器时,Angular获取未知的提供程序错误

如何将我的服务注入我的控制器angular js

在使用Angular1 + ES6并将控制器作为类时,在控制器函数中未定义依赖项注入