在茉莉花中测试- 返回类型错误的错误:未定义不是对象



我是编写测试单元的新手,在尝试执行测试时收到以下错误:

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

我知道这并不完整,因为我没有期望 - 在运行测试单元之前,我需要在测试文件中设置变量的值吗?

是的,您需要设置预期值。请参阅下面的示例。

要测试的 JavaScript 函数

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

测试用例代码:

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

最新更新