J'essaie d'ajouter des cas de test unitaires à mes actions de redux.Tests unitaires Redux async actions
J'utilise thunk
, promise-middleware
dans mes actions
une de mon action est comme ce
export function deleteCommand(id) {
return (dispatch) => {
dispatch({
type: 'DELETE_COMMAND',
payload: axios.post(`${Config.apiUrl}delete`, { _id: id })
})
}
}
test unitaire
pour cela est
import configureMockStore from "redux-mock-store"
const middlewares = [thunk, promiseMiddleware()];
const mockStore = configureMockStore(middlewares)
it('creates DELETE_COMMAND_FULFILLED after deleting entry', (done) => {
nock('http://localhost:8081/')
.post('/delete',{
_id: 1
})
.reply(200, {})
const expectedActions = [{
type: 'DELETE_COMMAND_FULFILLED',
payload: {}
}]
const store = mockStore({
command: {
commands: []
}
})
store.dispatch(actions.deleteCommand({_id: 1}).then(function() {
expect(store.getActions())
.toEqual(expectedActions)
done();
})
})
J'utilise nock
, redux-mock-store
configuré avec thunk
, promise middleware
Il donne then of undefined
puis j'ai changé l'action de retourner la promesse, je suis unhandled promise reject
exception, j'ai ajouté une prise à l'appel d'expédition d'action . Maintenant, je reçois Network Error
parce que nock ne se moque pas de l'appel. Également essayé moxios
, modifié axios
à isomorphic-fetch
, whatwg-fetch
. Ne semble pas fonctionner
Où est-ce que je fais mal?
Configurez-vous votre magasin de données correctement? c'est-à-dire ajouter le thunk et promettre le middleware. – Nick
J'ai mis à jour ma question avec le magasin de simulation ainsi – Sreevisakh