2016-10-28 53 views
0

我正在使用摩卡在Meteor應用程序中測試某些窗體。應用程序中的路由已通過身份驗證,因此只有登錄的用戶或具有「管理員」角色的用戶才能查看它們。使用黑猩猩/摩卡測試流星應用程序 - 自動登錄以測試已驗證的路線

當測試打開瀏覽器查看URL並填寫表單時,它將按照預期重定向到登錄頁面。

有沒有辦法在測試前自動登錄用戶,所以我不必刪除路由認證?

這裏的測試代碼到目前爲止

describe('Create a Client', function() { 
    it('should create a new client @watch', function() { 
     browser.url('http://localhost:3000/dashboard/clients/new') 

     [...] 

    }); 
}); 

回答

1

使用本:

function login(user) { 
    browser.url('http://localhost:3000') 
    browser.executeAsync(function(user, done) { 
    Meteor.loginWithPassword(user.username, user.password, done) 
    }, user) 

} 

// now you can do this: 
login({ 
    username: 'someone', 
    password: 'aSecret' 
}); 
browser.url('http://localhost:3000/dashboard/clients/new') 

請注意,您需要確保用戶至上存在,爲此,你可以使用固定裝置。

這裏看到更多的信息: https://forums.meteor.com/t/solved-how-can-i-wait-for-before-hooks-to-finish-when-testing-with-chimp-meteor-cucumber/18356/12

+0

這是真棒,謝謝! – Sean

+0

快速的問題,我完全按照您的指示實施了代碼。我已更改用戶名/密碼,但第二個「browser.url」功能不起作用。用戶登錄後,應用程序停留在儀表板上,測試失敗。任何想法爲什麼? – Sean

相關問題