knockout.js - 检查扩展是否应用于 observable

标签 knockout.js knockout-validation knockout-extensions

我想对我的函数进行单元测试,该函数基本上是从一组参数(TypeScript 代码)构建一个可观察的数组:

private BuildObservables(parameters: Parameter[]) {
        var observables = {};

        for (var parameterName in parameters) {

            var p = parameters[parameterName];

            // Build observable
            observables[parameterName] = ko.observable(p.Value);

            // Attach validation
            if (p.IsRequired) {
                observables[parameterName].extend({ required: true });
            }
        }
        return observables;
    }

我的测试如下所示:
var parameters = [];

// new Parameter(int value, bool isRequired)
parameters["Param1"] = new Parameter("123", true);
parameters["Param2"] = new Parameter("456", false);

var viewModel = BuildObservables(parameters);

ok(viewModel["Param1"] != null);
ok(viewModel["Param2"] != null);

如果第一个参数 isRequired 设置为 true ,如何检查是否应用了扩展(验证)(BuildObservables 中的“附加验证”部分)?

编辑:

在另一个功能中,我正在附加订阅者,但我不知道如何测试它们是否正确附加。

最佳答案

您可以调用rules()在你的 observable 上,它应该给你一个数组。

observables[parameterName].rules();

关于knockout.js - 检查扩展是否应用于 observable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15929770/

相关文章:

javascript - 如何使用knout js循环显示文本

javascript - 查看嵌套动态 observableArray 中的数据绑定(bind)

jquery - Knockout Js - ko.utils.arrayFirst 不起作用

knockout.js - 我如何从头开始装饰 KO 验证框架?

javascript - 全局更改所有页面的 knockout 验证消息

asp.net-mvc-3 - knockout 验证和清除控制的正确方法

javascript - knockout 延期问题 - 更好的解决方案?

javascript - knockout : Wrapping the if binding in a custom binding