javascript - Jasmine 和 Angularjs - 为什么 $index 未定义?

标签 javascript angularjs tdd jasmine

该脚本有效,但如果我测试它则无效。

Jasmine :

describe("myApp", function(){

        beforeEach(module("mymod"));

        describe("maincontroller", function(){

            var scope;
            var ctrl;
            var compile;
            var html;
            beforeEach(inject(function($rootScope, $controller, $compile){
                scope = $rootScope.$new();
                ctrl = $controller("maincontroller", {$scope:scope});

                compile = $compile;

                html = angular.element('<ul id="listONE"><li class="{{person.isSel}}" ng-repeat="person in people" ng-click="selPersonToChange($index)">{{person.name +" - "+ person.city}}</li></ul>');
                compile(html)(scope);
                scope.$digest();    

            }));

            it("Is selPersonToChange() working?", function(){
                expect(scope.selPersonToChange(ind)).toEqual(true);
            });
});

最佳答案

您尚未在该 JavaScript 文件中的任何位置定义“ind”。 ng-click 应该可以工作,因为 $index 是在 ng-repeat 中定义的。但您的测试有“ind”声明。

关于javascript - Jasmine 和 Angularjs - 为什么 $index 未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22598446/

相关文章:

javascript - 如何根据另一个选择值有条件地加载选择选项

javascript - AngularJS ui-grid 中的网格更改时如何得到通知?

php - 有没有关于如何在 "Laravel 5.1"中为基于 CRUD 的应用程序编写测试的示例?

javascript - 如何检查网站是否可以在 iframe 中加载

javascript - DataTables根据某个值将数据替换为多列

javascript - AngularJs $watch 没有绑定(bind)

angularjs - Postman 对基于 REST 的 POST 方法给出错误

unit-testing - 单元测试如何测试任何东西?

TDD:先测试还是先存储库模式

javascript - 如何构建一个简单的具有固定转换比率的美元/欧元 react 货币转换器?