2013-08-06 83 views
1

我有一個登錄表單,現在我想進行一次集成測試,看看用戶是否在登錄成功後重定向到其他頁面。什麼是在AngularJS E2E測試中測試位置變化的好方法

窗簾的背後,是一種通過$window.location.href = 'home';

首先我有這個觸發頁面重載授權服務:

it('should redirect to /home if credentials are correct', function(){ 
    browser().navigateTo('/login'); 
    input('credentials.username').enter('testuser'); 
    input('credentials.password').enter('testpass'); 
    element('button.login').click(); 
    expect(browser().location().path()).toBe("/home"); 
}); 

但AngularJS測試失敗都 - 運行因緣和在瀏覽器中亞軍。然後我認爲expect太早了,我在它之前加了sleep(1)。然後它很好,在測試運行器中,我可以在斷言之前看到頁面刷新。

我認爲它可能會更好,如果我有位置()。路徑('/家'),但我更喜歡完整重新加載在這一步。

是否有任何設計/測試模式應該在這種情況下使用,所以我不必在預期的位置更改之前放置sleep()?

回答

0

您可以試試這段代碼;

it('should redirect to /home if credentials are correct', function(){ 
    browser().navigateTo('/login'); 
    input('credentials.username').enter('testuser'); 
    input('credentials.password').enter('testpass'); 
    element('button.login').click(); 
    browser().navigateTo('/home'); 
});