0

我正在编写一套我经常在我的项目中使用的淘汰赛绑定,它变得很大,我需要测试。所以我试着用 Qunit 来做,这是一个基本的测试

module("Message binding");

test("When updating message observable with a splash message ", function () {
    var div = document.createElement("div");

    var message = ko.observable();

    ko.applyBindingsToNode(div, { message: message });

    message({ splash: "Test" });
});

编辑:在任何人添加蹩脚评论之前:DI 知道还没有 Assert,当我让绑定表现得像在实时环境中一样时,它就会出现

当我应用绑定时,它会使用空值触发绑定的更新方法(这是正确的,因为 observable 具有空值)

但是当我设置消息 observable message({ splash: "Test" }); 更新方法不会再次触发。我当然可以自己调用 init 并更新方法,但是我没有使用 KO observable API,并且测试会有点反作用

4

1 回答 1

3

如果 Knockout 检测到元素不是文档的一部分,则 Knockout 将处理用于跟踪元素绑定依赖关系的计算 observable。

因此,您可能希望在应用绑定之前将元素附加到文档中。然后,您可以在测试完成后将其删除。

于 2012-08-22T11:56:09.623 回答