Javascript Can';t达到';这';在角的因果报应测试中
我正在做一个小项目,目前在使用这个超过$scope时遇到了一个问题。我不确定哪一个是最好的,但我并没有陷入困境,因为当我编写茉莉花测试时,karma不会在我的控制器中找到“这个”。以下是我的jasmine测试代码:Javascript Can';t达到';这';在角的因果报应测试中,javascript,angularjs,jasmine,karma-runner,Javascript,Angularjs,Jasmine,Karma Runner,我正在做一个小项目,目前在使用这个超过$scope时遇到了一个问题。我不确定哪一个是最好的,但我并没有陷入困境,因为当我编写茉莉花测试时,karma不会在我的控制器中找到“这个”。以下是我的jasmine测试代码: 'use strict'; describe('PhoneListCtrl', function() { beforeEach(module('phoneCtrlModule')); it('should create "phones" model with
'use strict';
describe('PhoneListCtrl', function() {
beforeEach(module('phoneCtrlModule'));
it('should create "phones" model with 3 phones', inject(function($controller){
var scope = {},
ctrl = $controller('PhoneListCtrl', {$scope:scope});
expect(scope.phones.length).toBe(3);
}));
});
这是角度控制器本身:
(function () {
var app = angular.module('phoneCtrlModule', []);
app.controller('PhoneListCtrl', function() {
this.phones = [
{'name': 'Nexus S',
'snippet': 'Fast just got faster with Nexus S.'},
{'name': 'Motorola XOOM™ with Wi-Fi',
'snippet': 'The Next, Next Generation tablet.'},
{'name': 'MOTOROLA XOOM™',
'snippet': 'The Next, Next Generation tablet.'}
];
});
})();
我试过让$scope等于这个。但它不起作用。我对如何在karma测试中访问PhoneListCtrl.phones感到有点困惑。关键字此处表示控制器本身。 您可以在测试用例中使用this.phones作为 phoneCtrlModule.phones 替代方案是: var范围 beforeach(注入(函数($rootScope,$Controller){ })))
期望(范围、电话、长度)、toEqual(3) 你需要检查
ctrl.phones.length
谢谢,就这样。愚蠢的我试图把一切都复杂化。
$scope=$rootScope.$new();
var ctrl = $controller('phoneCtrlModule', {
$scope: scope
});