如何检测所有绑定何时更新并且页面更新完成?

时间:2013-02-01 02:04:58

标签: knockout.js web-testing

我正在研究如何通过Selenium或PhantomJS等自动化测试工具测试基于淘汰赛的网站。测试的一般流程是:

  1. 做某事(例如,点击按钮)
  2. 检查是否已发生成功副作用(例如,更新范围文本)
  3. 重复
  4. 问题是#2。 Knockout更新不会立即发生,因此我执行以下操作:

    1. 每100毫秒检查一次成功情况
    2. 如果过了5秒钟,则失败。
    3. 这很糟糕,因为我必须让超时足够长,以至于淘汰总是完成,或者是虚假的失败。

      有什么方法可以检测所有依赖项何时更新?或者我错过了另一种方法吗?

      谢谢, 埃里克

1 个答案:

答案 0 :(得分:0)

您可以附加自己的订阅,以通知可观察对象的更改。 一旦调用了您的订阅,它就可以成为您检查成功条件的触发器。

例如:

myViewModel.personName.subscribe(function(newValue) {
    alert("The person's new name is " + newValue);
    //Person got a new name, now lets run the testing tool 
});

More details here