【问题标题】:Unit Testing Array Push单元测试数组推送
【发布时间】:2015-03-18 23:44:29
【问题描述】:

这可能是我遗漏的一件非常明显的事情,但我正试图将现有对象从一个数组推送到另一个数组以进行测试,但我的测试一直失败。

查看模型

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 没有从数据库数组接收到第一个对象。

【问题讨论】:

    标签: javascript unit-testing mvvm knockout.js jasmine


    【解决方案1】:

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

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

    【讨论】:

    • 我知道这很简单。我一直在看 vm.userDatabases.push() 逻辑而不是实际测试。谢谢!
    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多