2016-07-06 10 views
0

私は筆記試験ユニットに新しいですし、私のテストを実行しようとすると、次のエラーが発生しますではありません。テスト:未定義のオブジェクト

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(); 
    }) 

です期待しない - テストユニットを実行する前に、テストファイル内の変数の値を設定する必要がありますか?

答えて

0

はい、期待値を設定する必要があります。以下の例を参照してください。

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); 
}); 
}); 

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

テストケースコードをテストする

Javascript機能

関連する問題