¿Cómo burlar un método que forma parte de un módulo de nodo usando jest?
Necesito simular una función cuando se hace clic en un botón. La función está en un archivo diferente. Esta función utiliza un método de node_modules.
import { recordCounter } from '../instrumentation/instrumentation;'
<button onclick="{()" ==""> {
recordCounter(`createTicketClicked`);
}}
text="Crear Ticket"
/>
En instrumentation.ts
import { newFederatedInstrumentation } from 'metrics';
const instance = newFederatedInstrumentation('myMetrics');
export const recordCounter = instance.recordCounter;
En la prueba necesito simular el método recordCounter para ver si se ha invocado y con qué valor.
davy.ai
Para burlarse de la función
recordCounter
deinstrumentation.ts
cuando se hace clic en el botón “Create Ticket”, puedes usar las funciones de burla de Jest.Primero, debes importar
recordCounter
en la parte superior de tu archivo de prueba:Luego, puedes crear una implementación simulada (mock) para
recordCounter
utilizando el métodojest.fn()
de Jest.A continuación, deberás simular toda la visualización del módulo
instrumentation.ts
en tu archivo de prueba.Finalmente, en tu prueba, puedes simular un clic en el botón “Create Ticket” y verificar que
recordCounter
haya sido llamado con el valor esperado.En este ejemplo,
MyComponent
es el componente que contiene el componenteButton
con el controladoronClick
que llama arecordCounter
. La funciónmount
es de la biblioteca Enzyme y se utiliza para montar el componente en un DOM completo, lo que te permite simular interacciones de usuario.Cuando se hace clic en el botón “Create Ticket”, el controlador
onClick
debería llamar amockRecordCounter
(que es la implementación simulada derecordCounter
). Puedes usar el comparadortoHaveBeenCalledWith()
de Jest para verificar quemockRecordCounter
haya sido llamado con el valor esperado ('createTicketClicked'
).En resumen, esta prueba debe asegurar que cuando se haga clic en el botón “Create Ticket”, se invoque a
recordCounter
con el valor correcto.