2016-08-03 17 views
2

単体テストを実行したいactionCreatorメソッドがあります。それはfirebaseの呼び出しを行い、成功するか失敗すると2つの方法を相対的にディスパッチします。firebase呼び出しを伴うreduxの単体テスト

は、それはこのようSTHになります:私はReduxのからの例を、以下のい

export function removeItem(itemId) { 
    return dispatch => { 
     return firebase.database().ref('items').child(itemId).remove() 
      .then(
       success => dispatch(updateList()), 
       error => dispatch(failRemovingItem(error)) 
      ); 
     }; 
} 

http://redux.js.org/docs/recipes/WritingTests.html

しかし、fireベースコールをノックでモックすることはできません。

ユニットテストの経験がある人はいますか?

答えて

0

シナリオの1つは、行を抽出することです:ヘルパーに

firebase.database().ref('items').child(itemId).remove() 

を、例えばFireBasehelper.removeEntity(ID)と、あなたは簡単に一般的な慣行に従うことによって、アクションの作成者の内部で、このヘルパーを模擬することができます。あなたが唯一の私たちはただ、返信用ので

function removeEntity(itemId) { 
    return firebase.database().ref('items').child(itemId).remove() 
} 
0

感謝を抽出したものを返すヘルパーで

export function removeItem(itemId) { 
    return dispatch => { 
     return Databasehelper.removeEntity(itemId) 
      .then(
       success => dispatch(updateList()), 
       error => dispatch(failRemovingItem(error)) 
      ); 
     }; 
} 

:あなたのコードは次のようになります。私は実際にfirebase呼び出しの周りにヘルパーをします。私は単純化のためにそれを取り出しました。私がしている問題は、私がその行動を模擬する方法を知らないということです。

関連する問題