单元测试数组推送

Unit Testing Array Push

本文关键字:数组 单元测试      更新时间:2023-09-26
这可能是

我错过的一个非常明显的东西,但我试图将现有对象从一个数组推送到另一个数组以进行测试,但我的测试一直失败。

查看模型

this.userDatabases = ko.observableArray();
this.databases = _.range(5).map(function (i) {
    return {
        name: 'DB ' + (i + 1),
        chosenRoles: ko.observableArray(),
        chosenModules: ko.observableArray()
    };
});

单元测试

describe('modifies a new user by', function () {
    it('adding a database', function () {
        vm = new pfp.insight.controllers.settingsController();
        vm.userDatabases.push(vm.databases[0]);
        expect(vm.userDatabases.length).toEqual(1);
    });
});

这个测试说"预期 0 等于 1",我不确定为什么 userDatabases 没有从数据库数组接收第一个对象。

您需要解开可观察数组(通过在它后面加上括号)来测试它的长度,就像这样

    expect(vm.userDatabases().length).toEqual(1);