Soy nuevo en Jest, estoy tratando de usarlo para probar si se llamó a una función o no. Noté que mock.calls.length no se restablece para cada prueba, sino que se acumula. ¿Cómo puedo convertirlo en 0 antes de cada prueba? No quiero que mis próximas pruebas dependan de los resultados de las anteriores.
Sé que hay beforeEach en Jest, ¿debería usarlo? ¿Cuál es la mejor manera de restablecer mock.calls.length? Gracias.
Un ejemplo de código:
Sum.js:
import local from 'api/local';
export default {
addNumbers(a, b) {
if (a + b <= 10) {
local.getData();
}
return a + b;
},
};
Sum.test.js
import sum from 'api/sum';
import local from 'api/local';
jest.mock('api/local');
// For current implementation, there is a difference
// if I put test 1 before test 2. I want it to be no difference
// test 1
test('should not to call local if sum is more than 10', () => {
expect(sum.addNumbers(5, 10)).toBe(15);
expect(local.getData.mock.calls.length).toBe(0);
});
// test 2
test('should call local if sum <= 10', () => {
expect(sum.addNumbers(1, 4)).toBe(5);
expect(local.getData.mock.calls.length).toBe(1);
});
local.mockClear()
, no funciona.