2016-08-03 3 views
2

У меня есть метод actionCreator, на который я хотел бы выполнить модульный тест. Это вызовет пожарную базу, и при успешном завершении или неудаче она отправит 2 метода относительно.Единичный тест на сокращение, который включает вызов firebase

Это выглядит н так:

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

Я следую пример из Redux. http://redux.js.org/docs/recipes/WritingTests.html

Но я не могу издеваться над вызовом firebase через нок.

У кого-нибудь есть опыт работы с модулем-тестированием чего-то подобного?

ответ

0

Один из сценариев для извлечения строки:

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

к помощнику, например FireBasehelper.removeEntity (ID), а затем вы можете легко издеваться этим помощником внутри действий создателя, следуя общую практику. Ваш код тогда будет выглядеть следующим образом:

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

В помощнике вы только возвращение того, что мы только что извлеченный так

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

Спасибо за ответ. Я действительно делаю hv помощником вокруг вызова firebase. Я взял его просто ради простоты. Проблема, с которой я сталкиваюсь, заключается в том, что я не знаю, как издеваться над действиями.