我正在编写一套我在项目中常用的挖空绑定,它变得越来越大,我需要测试。所以我尝试用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" });
});
编辑:在任何人添加蹩脚评论之前:D我知道还没有Assert,当我让绑定在现场环境中表现时会出现
当我应用绑定时,它会使用空值触发绑定的update方法(这是正确的,因为observable具有空值)
但是当我设置消息可观察的消息({splash:“Test”}); 时,更新方法不会再次触发。我可以在现场调用init,并自己更新方法,但后来我没有使用KO可观察的API,测试会有点生产性
答案 0 :(得分:3)
Knockout将处理用于跟踪元素绑定的依赖关系的计算observable,如果它检测到该元素不是文档的一部分。
因此,您需要在应用绑定之前将元素附加到文档中。然后,您可以在测试完成后将其删除。