繁体   English   中英

使用JavaScript测试用户交互

[英]Testing User Interaction with JavaScript

我无法让Lettuce / Splinter或JsTestDriver来运行与Backbone生成的DOM对象进行用户交互的测试。 例如,在hello主干教程中 ,我要模拟用户单击标为“添加列表项”的按钮,然后验证是否出现了文本“ hello world1”的<li>元素。

JsTestDriver:我可以获取对按钮元素的引用并对其上的click()进行调用,但是然后document.getElementsByTagName("li")失败(或返回null?)。

Johansen的出色著作说,测试事件处理程序不是正确的单元测试任务。 因此,我尝试了针对Django的BDD(?)工具:

Lettuce / Splinter / Django: Splinter Browswer对象看不到按钮中的文本,不必介意获取引用或单击它。 (它确实处理了通过HTML创建的元素的这些操作。)world.browser.is_text_present()和find_by_id()都不起作用。 将等待时间传递给前者没有帮助。

我真的更希望避免直接使用Selenium,并认为这些工具使这不必要。 那么现在怎么办?

尽管从技术上讲,触发DOM事件可能不是“单元测试”,但这并不意味着您不能使用单元测试框架来完成它:)这更多是一种定义。

无论如何,您都可以使用JsTestDriver来实现所需的功能,但是我建议您不要通过click()手动进行操作(这可能无法实现您的期望)。 我通常使用jQuery触发事件,并且可以安全地通过JsTestDriver完成。 即使您在生产代码中不使用jQuery,这也应该起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM