test - Burlarse de la dependencia del módulo/función bajo prueba en Javascript
redux-mock-store (1)
Digamos que quiero probar lo siguiente, por ejemplo:
import {fetchResourceFromBackend} from ''./myfetch'';
const fetchSomething = (dispatch) => {
dispatch(2);
return fetchResourceFromBackend(''/api/abc'').then( result => {
dispatch(3);
});
};
fetchResourceFromBackend
es una función complicada. ¿Cómo puedo probar esto y no ser afectado por el código fetchResourceFromBackend
(cualquier patrón o recomendación de herramienta, utilizo mocha
y sinon
pero no lo logro)?
¿Es mi única opción proporcionar fetchResourceFromBackend
como argumento para fetchSomething
para que pueda fetchSomething
?
Usando bromas como @Mikhail sugirió que resolví así:
// test/something-test.js
import {myFetch} from ''../_mocks_/utilities'';
jest.doMock(''modules/utilities'', () =>({
myFetch: myFetch
}));
const {fetchSomething} = require(''modules/something'');
describe(''#fetchSomething'', ...
Aquí fetchSomething
es una función bajo prueba que tiene una dependencia interna en la función myFetch
de ''modules/utilities''
. Me burlo de esa dependencia con myFetch
desde ''../_mocks_/utilities''
.