我无法让 Lettuce / Splinter 或 JsTestDriver 运行用户与 Backbone 生成的 DOM 对象交互的测试。例如,在hello主干教程中,我想模拟用户点击标记为“添加列表项”的按钮,然后验证是否<li>
出现了文本元素“hello world1”。
JsTestDriver:我可以获得对按钮元素的引用并调用click()
它,但随后document.getElementsByTagName("li")
失败(或返回 null?)。
Johansen 的优秀著作说,测试事件处理程序并不是一个正确的单元测试任务。所以我为 Django 尝试了我的 BDD (?) 工具:
Lettuce / Splinter / Django: Splinter Browswer 对象看不到按钮中的文本,没关系获取对它的引用或单击它。(它确实处理通过 HTML 创建的元素的这些操作。) world.browser.is_text_present() 和 find_by_id() 都不起作用;将等待时间传递给前者并没有帮助。
我真的更愿意避免直接使用 Selenium,并认为这些工具使这变得不必要。那么现在怎么办?