Tôi là một newbie trong thử nghiệm Apps góc với Jasmine, và tôi không thể tìm ra nguyên nhân của vấn đề này ...Dự kiến undefined phải được xác định trong khi thử nghiệm điều khiển góc với Jasmine
Bộ điều khiển
programsModule.controller('ticketCtrl', ['$scope', function ($scope) {
$scope.disableSendBtn = true;
});
Và đây là bài kiểm tra đơn vị
'use strict';
describe('app', function() {
// variables
var $rootScope, $scope, $controller;
beforeEach(module('supportModule'));
describe('ticketCtrl', function() {
beforeEach(inject(function (_$rootScope_, _$controller_) {
$rootScope = _$rootScope_;
$scope = $rootScope.$new();
$controller = _$controller_('ticketCtrl', {
'$scope': $scope
});
}));
it('Should disable send btn', function() {
expect($scope.disableSendBtn).toEqual(true);
});
});
});
Và đây là outp ut của thử nghiệm
TypeError: Cannot read property 'disableSendBtn' of undefined
Và nếu tôi kiểm tra nếu biến $scope
được định nghĩa hay không bằng cách
it('Should $scope be defined', function() {
expect($scope).toBeDefined();
});
tôi nhận được lỗi này quá
Expected undefined to be defined.
Vì vậy, vấn đề là những gì ở đây?
ĐÂY là jsFiddle http://jsfiddle.net/LeoAref/bn1wxycs/
Sửa
tôi đã sử dụng mô-đun không chính xác ở đây beforeEach(module('app'));
và tôi cố định bằng cách sử dụng mô-đun đúng beforeEach(module('supportModule'));
Và tôi đã nhận lỗi khác:
Error: [ng:areq] Argument 'ticketCtrl' is not a function, got undefined
http://errors.angularjs.org/1.4.1/ng/areq?p0=ticketCtrl&p1=not%20a%20function%2C%20got%20undefined
Hãy thử '$ khiển _ ('ticketCtrl', { $ phạm vi: $ phạm vi });' mà không sử dụng dấu nháy đơn –
@WayneEllery, cảm ơn, nhưng tôi đã nhận lỗi cùng ... – LeoAref
Bạn có một typo: $ rootScope = \ _ $ controller_; <- thay đổi điều đó thành \ _ $ rootScope_ –