2016-01-28 1 views
2

Je travaille sur le tutoriel Redux trouvé here.Test des effets secondaires dans les actions Redux

Dans l'application que j'ai créée, j'ai une action avec un effet secondaire similaire à celle affichée here dans la fonction receivePosts où Date.now() est appelée.

L'effet secondaire est déclenché après l'exécution d'une fonction asynchrone. En suivant this async test dans ma propre application. Je reçois une réponse ressemblant à ceci:

actual: 
{ 
    type: 'REQUEST_LEAGUE_SUCCESS', 
    receivedAt: 1453991947254, 
    league: 'Div 3', 
    resultsTable: [ [Object], [Object] ] 
}, 

expected: 
{ 
    type: 'REQUEST_LEAGUE_SUCCESS', 
    league: 'Div 3', 
    receivedAt: 1453991947235, 
    resultsTable: [ [Object], [Object] ] 
} 

où la date de mon action attendue n'est pas égale à la date de l'action réelle. Dans mon action attendue, je donne les résultats suivants:

receivedAt: Date.now() 

La structure de mon code est exactement le même que le code trouvé dans le tutoriel Redux, en dehors de mon créateur d'action ayant cet effet secondaire. Ma question se résume à: Comment puis-je gérer ces effets secondaires pour faire passer mes tests?

Répondre

-1

Je pense que vous devez intégrer une certaine tolérance à vos tests, car il s'écoulera inévitablement un certain temps entre l'envoi d'une action et la réception d'une réponse. Même si vous faites semblant, il y aura toujours une différence dans le temps d'exécution. La façon dont vous allez vous y prendre dépend de votre bibliothèque d'assertions.