2013-07-17 66 views
1

我跑E2E針對AngularJS網站測試,使用角場景AngularJS E2E測試:如何一次執行代碼(像beforeEach)

我在it塊之前執行beforeEach函數中的某些登錄代碼。

我的登錄功能有一個超時延遲,以確保登錄完成正確。這是費時和低效的(更不用說不雅)。另外,用戶在會話期間只能登錄一次,所以這可以更準確地模擬我的場景。

我正在尋找的是一個before功能,對於包含一個describe塊內it塊集合只執行一次登錄,但該工廠似乎並不存在(我檢查的文檔和源代碼)。

似乎是測試庫的明顯要求!有人解決了這個問題嗎?

回答

2

你可以使用變量標誌嗎?例如:

var bdone = false; 
describe('Search POC', function() { 
    beforeEach(function() { 
     if (!bdone) { 
      browser().navigateTo('login'); 
      console.log('navigated once'); 
      bdone = true; 
     } 
    }); 

    it ('should have an img link on the login results', function() { 
     expect(element('a:last').html()).toMatch(/jpg/); 
    }); 

    it ('should redirect to user details when clicked', function() { 
     element('#UserThumbImage:first').click(); 
     expect(browser().window().href()).toMatch(/user/); 
    }); 


}); 
+1

哈哈!當我讀到這個時,我大聲笑了起來。它非常簡單明顯,但其他人沒有提供任何其他選項,所以它可能是唯一的好解決方案:-) – Scott

相關問題