簡體   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