Dans un test d'intégration, je veux tester qu'un créateur d'action connecté est appelé.Comment se moquer des accessoires qui sont réellement des créateurs d'actions connectés de Redux?
describe('SomeContainer',() => {
let subject, store, fancyActionCreator
beforeEach(() => {
store = createStore(combineReducers({ /* ... */ }))
fancyActionCreator = sinon.spy()
const props = {
fancyActionCreator
}
subject = (
<Provider store={store}>
<SomeContainer {...props} />
</Provider>
)
})
it('calls fancyActionCreator on mount',() => {
mount(subject)
expect(fancyActionCreator.callCount).to.equal(1)
})
}
Le créateur d'action est appelée à l'intérieur componentWillMount
et fonctionne comme prévu au-delà de l'environnement de test. Le problème est que le créateur d'action original est appelé dans le test et n'est pas raillé correctement.
J'ai le sentiment qu'il est à cause de la méthode connect()
de Redux qui remplace l'espion:
connect(mapStateToProps, { fancyActionCreator })(SomeContainer)
J'ai mis à jour ma réponse. – luboskrnac