Estoy usando Node.js y Express para configurar la ruta API.
Una ruta llama a una función en una solicitud HTTP.
Quiero probar si esa función ha sido llamada.
Cuando realizo una solicitud HTTP (usando Axios, buscar, lo que sea) dentro de un conjunto de pruebas, solo puedo probar la respuesta HTTP.
¿Alguna idea sobre cómo superar este problema?
módulo temp.js
function testFn() { console.log("I just want to test if this fn has been called") } module.exports = { testFn, }
Aplicación Express (que se ejecuta en segundo plano)
const { testFn } = require("./temp") app.get('/test', (req, res) => { testFn() res.send('GET request') })
Mi enfoque de las pruebas que obviamente no funciona (no es una prueba unitaria)
const { default: axios } = require("axios") const { testFn } = require("./temp") jest.mock("./temp", () => ({ testFn: jest.fn(), })) test("API test", async () => { await axios.get(`http://localhost:3000/test`) expect(testFn).toHaveBeenCalled() })