2016-07-06 83 views
0

我是新來編寫測試單位和努力執行我的測試時,我收到以下錯誤:測試中jasmine-返回類型錯誤的錯誤:未定義不是對象

TypeError: undefined is not an object (evaluating '$scope.createRoleForm.canCreateAccount=false') 

我想要的功能測試:

function enableAccountRoles() { 
    $scope.createRoleForm.canCreateAccount = false; 
    $scope.createRoleForm.canListAccounts = false; 
    $scope.createRoleForm.canSearchAllChat = false; 
    $scope.createRoleForm.canManageSite = false; 
    } 

和我的測試代碼

it('should call enableAccountRoles', function() { 
    this.scope.enableAccountRoles(); 
    }) 

我知道,這是不完整的,因爲我甲肝e沒有期望 - 在運行測試單元之前是否需要在測試文件中設置變量的值?

回答

0

是的,您需要設置預期值。看下面的例子。

的Javascript功能來測試

function Add(x, y) { 
return x + y; 
} 

的TestCase代碼:

describe("Math Test Cases", function() { 

it("Additon Test Case", function() { 
    expect(Add(3, 4)).toBe(7); 
}); 
}); 

角測試代碼:

var MyApp = angular.module("MyModule", []); 
MyApp.controller("MyController", function ($scope) { 

$scope.number1 = 0; 
$scope.number2 = 0; 
$scope.total = 0; 

$scope.Addition = function() { 
    $scope.total = $scope.number1 + $scope.number2; 
}; 
}); 

角測試用例:

describe("Angular Test cases", function() { 

it("Addition test case", function() { 
    module("MyModule"); 

    var scope = {}; 

    inject(function ($controller) { 
     $controller("MyController", { $scope: scope }); 
    }); 

    scope.number1 = 4; 
    scope.number2 = 5; 
    scope.Addition(); 
    expect(scope.total).toBe(9); 
}); 
}); 
相關問題