4
這是我第一次嘗試使用Karma/Jasmine。我想用它來測試一個AngularJS應用程序。AngularJS Karma茉莉花錯誤:無法讀取未定義的屬性
這只是一個簡單的Hello World測試,以確保事情正常,但事實並非如此。
我想測試一個名爲InboxController的控制器。我已經定義了一個範圍變量:$ scope.greeting ='Hello World'。
我想在一個名爲controllers-test.js的單獨文件中測試它。
這是測試:
'use strict';
描述( '試驗控制器',函數(){
describe('InboxController', function() {
var scope;
beforeEach(angular.mock.module('myApp'));
beforeEach(angular.mock.inject(function($rootScope, $controller){
scope = $rootScope.$new();
$controller('InboxController', {$scope: scope});
}));
it('should return Hello World', function() {
expect(scope.greeting).toBe('Hello World');
});
});
});
我不斷收到一個錯誤:
無法讀取的未定義的屬性「問候」,它涉及回測試代碼scope.greeting。
噶配置:
files : [
'bower_components/angular/angular.js',
'bower_components/angular-mocks/angular-mocks.js',
'bower_components/angular-resource/angular-resource.js',
'app.js',
'js/*.js',
'test/*.js'
],
InboxController:
app.controller('InboxController', function($rootScope, $scope,
$location, InboxService) {
$scope.greeting = 'Hello World';
$rootScope.loggedIn = true;
// Load Inbox
$scope.loadInbox = function() {
$scope.emails = InboxService.getMessages().success(function(jsonData) {
$scope.emails = jsonData;
});
}
// Delete email
$scope.delete = function (id) {
InboxService.delete(id).success(function() {
$scope.loadInbox();
});
};
$scope.loadInbox();
});