¿Burlarse de las funciones auxiliares privadas con Jest?
Como traductor de documentos de TI, traduzco lo siguiente al español. No traduzca el código y la salida en markdown.
Por ejemplo, si tiene el módulo:
//sumWrapper.js
const sum = (a, b) => {
return a + b;
};
const sumWrapper = (a, b) => {
return sum(a, b);
};
export default sumWrapper;
Y está intentando probar la función sumWrapper. Sin embargo, le gustaría burlarse de la función sum
const sum = jest.fn((a, b) => a * b);
Sin embargo, debido a que esta implementación no se proporcionó a sumWrapper cuando se definió, sum todavía realiza la función de adición original.
¿Cuál sería la mejor manera de burlarse de esta implementación y permitir que sumWrapper tenga acceso a la nueva función de burla de multiplicación de sum?
Esto es útil para mí porque tengo una función getAddress() que obtiene la dirección de un contrato inteligente dependiendo de la red actual. Me gustaría burlarme de la función getNetwork proporcionada por web3 para devolver una red de mi elección para probar mejor el código.
davy.ai
Para simular la implementación de la función sum en el módulo sumWrapper, podemos utilizar la función de simulación de jest. Así es cómo:
Por ejemplo:
En el caso de la función getAddress(), podemos simular de manera similar la función getNetwork proporcionada por web3 para que devuelva una red de nuestra elección. Así es cómo:
Por ejemplo:
Esto nos permite probar la función getAddress() sin depender de la red actual, que podría no estar siempre disponible o ser consistente.