¿Cómo es que cuando creo una función jest.fn() y luego llamo a mockReturnValue("hello") dentro de beforeAll() me quedo undefined cuando intento consolar. Registrar el valor en una prueba pero no cuando llamar a mockReturnValue("hello") dentro de beforeEach() ?
import App from "./App"
describe("App", () => {
const mock = jest.fn()
beforeAll(() => {
mock.mockReturnValue("hello")
})
beforeEach(() => {
})
afterEach(() => {
})
afterAll(() => {
})
it("should console.log the value 'hello'", () => {
console.log(mock()) // undefined
})
})
sin embargo, cuando llamo a mockReturnValue("hello") dentro de beforeEach , imprime hello .
import App from "./App"
describe("App", () => {
const mock = jest.fn()
beforeAll(() => {
})
beforeEach(() => {
mock.mockReturnValue("hello")
})
afterEach(() => {
})
afterAll(() => {
})
it("should console.log the value 'hello'", () => {
console.log(mock()) // hello
})
})
Gracias a @jonrsharpe, pude rastrear mi problema.
Estoy ejecutando mi prueba a través de node_modules/react-scripts en lugar de a través de node_modules/jest
de forma predeterminada, de acuerdo con esta otra pregunta y respuesta de StackOverflow
de forma predeterminada en react-scripts node_modules/react-scripts/scripts/utils/createJestConfig.js la configuración de broma se establece con "resetMocks": true
Entonces, lo que hice, dentro de mi archivo package.json fue poner la configuración de broma de
"jest": {
"resetMocks": false
}
Y volví a ejecutar mi prueba, y pasó como se esperaba