2017-01-19 4 views
1

firebase認証システムで動作するログインとログアウト機能があります。Jestを使ってhttp呼び出しに依存するユニットテストコードに最適な方法は?

このような方法はどのようにテストしますか? firebaseアプリインスタンスがインポートされ、ログイン機能で使用されます。必要に応じて

コードスニペット:

export function login(data) { 
    return dispatch => { 
    return firebaseAuth.signInWithEmailAndPassword(data.emailField, data.passField) 
     .then(user => { 
     dispatch({type: "SET_CURRENT_USER", payload: user}) 
     user.getToken().then(token => setAuthToken(token)) 
     localStorage.setItem("currentUser", JSON.stringify(user)) 
     }) 
    } 
} 

は、どのように私はこのような何かを模擬することができますか?メソッドをテストする目的のためだけにテスト電子メールとパスワードを設定する必要がありますか? 推奨される方法は何ですか?

ありがとうございます!

答えて

2

あなたはこのような機能を模擬することができます。

jest.mock('pathToFireBase',() => ({ 
    signInWithEmailAndPassword(email,password){ 
    if(password === 'correct') { 
     return Promise.resolve({name: 'someUser'}) 
    } else { 
     return Promise.reject({error: 'someError'}) 
    } 
    } 
})) 

これはあなたのテストで関数に渡すパスワードに応じて、解決または拒否約束を返すのいずれかの機能を使用してfirebaseAuthモジュールでsignInWithEmailAndPasswordに置き換えられます。

docsで、テストでの約束の処理方法をご確認ください

関連する問題