Mocking isola código de dependências externas. APIs, database, timers - substitua por doubles controlados.
Carregando
Mocking isola código de dependências externas. APIs, database, timers - substitua por doubles controlados.
Mocking isola código de dependências externas. APIs, database, timers - substitua por doubles controlados.
jest.fn() cria function mock. Rastreia calls, args, returns. mockReturnValue, mockImplementation.
jest.mock("module") substitui módulo inteiro. Auto-mock ou manual mock. __mocks__ directory.
jest.spyOn(obj, "method") observa método real. Rastreia calls sem substituir.
jest.useFakeTimers() controla setTimeout. jest.advanceTimersByTime(1000) avança tempo.
• Mock apenas boundaries (APIs, DB, filesystem)
• Não mock lógica de negócio
• Use spies quando possível (menos invasivo)
• Reset mocks em beforeEach
• Mock no nível certo (module vs function)
• Documente por que está mockando
• Mockar tudo (testa mocks, não código)
• Não resetar mocks (state vaza)
• Mocks muito específicos (frágeis)
• Mock de funções puras
• Não verificar mock calls
Quando usar cada um