2015-12-27 32 views
1

我有很簡單的AngularJs 1.4.8前端:如何等待事件在量角器端到端測試中處理?

enter image description here

當表單填寫和OK按下按鈕,新的人加入到表中。

形式是在addingPersonController和表在allPersonsController,兩者都是根據masterController兒童的。

當添加一個用戶(OK點擊)發生以下情況:

  1. 一個POST請求,以添加新的人發送給服務器。
  2. 一個personAddedEvent發出與$emitaddingPersonControllermasterController
  3. masterController廣播的updatePersonsEventallPersonsController
  4. allPersonsController發送GET請求到服務器,以讓所有的人,並更新表。

我有一個量角器端到端測試行使這種情況下,問題是,我無法弄清楚如何等待整個過程完成之前,檢查斷言和測試總是失敗。

的UI工程時,手動測試,我曾嘗試在量角器測試等具有:

  • browser.wait(function(){}, timeout);
  • browser.sleep(ms);
  • .click().then();

他們沒有工作。
在檢查斷言之前是否有辦法等待這樣的過程完成?

回答

3

我的e2e測試也有一些類似的問題。有幾個解決方法可以添加。取決於情況,主要是由於某種非響應超時(量角器/硒與瀏覽器之間失去同步)。這就像是一臺PC的死機,由於缺乏資源(GPU/VRAM,RAMCPU)。這導致內置的「等待角工程完成」的量角器失去了它的跟蹤。在應該運行之前運行規範。

這裏是清單,我會建議你嘗試:

  1. 使用內置的等待角快速解決問題的大部分時間。但是它沒有任何東西可以解決量角器/硒和瀏覽器之間失去同步的問題。

browser.waitForAngular();

  • 使用ExpectedConditionsbrowser.wait()這始終是最好的,因爲這將確保所有情況下工作。即使外面的角度環境。不好的事情有關,這是......這是相當長的輸入
  • browser.wait(ExpectedConditions.textToBePresentInElement($('#someId'), "Person's Name"), 10000);

    編輯:錯別字,讓答案更容易理解

    相關問題