2013-08-03 38 views
5

我有一個角度應用程序,它使用$routeProvider將不同的部分加載到ng-view中。角色應用休息框架業務情景中調用`sleep`或`pause`框架

因此,在我的e2e場景中,當我撥打browser().navigateTo('/')時,我還需要撥打sleep(0.5)或其他內容等待元素實際顯示。

不幸的是,撥打sleep完全打破了測試!突然之間,框架的行爲就好像根本看不到頁面,並且永遠找不到元素。

我的e2e測試中我不必等待任何東西加載就可以找到我期望的所有元素,但是如果我在這些測試中放入睡眠呼叫,那麼它們也會中斷。

有沒有人有什麼建議看看?一些增加控制檯詳細程度的方法?將測試儀重新對焦的一些方法?

附加信息:

  • 有一個在瀏覽器控制檯或命令行控制檯上沒有錯誤輸出!
  • 我已經直接從angular-seed項目中複製了我的karma設置。據我所知他們是相同的。

回答

0

我建議使用Protractor進行Angular E2E測試。這意識到角度和回報承諾。你可以做這樣的事情,那麼:

ptor.get('http://localhost/#/my-route').then(function() { 
    // Do something 
}); 

您也可以使用ptor.wait這樣的:

var timeout = 10000; 

    ptor.wait(function() { 
     return {some condition} 
    }, timeout); 

這將等待狀態運動之前是真實的。

你也可以使用ptor.waitForAngular()這將等待角度來解決任何承諾和http請求。