¿Qué son los handlers de eventos y cómo se testean?
El siguiente paso es testear que la función onClick que estamos enviando sea llamada cuando se ejecute el handler onClick.
Patrón 'Arrange, Act, Assert'
Antes de entrar en los detalles del código, exploremos el patrón Arrange, Act, Assert. Esto equivale a preparar, actuar y confirmar:
Arrange: preparar el componente para el test.
Act: ejecutar la acción sobre el componente (en este caso, un clic).
Assert: verificar que el resultado sea el esperado.
Implementamos un test para la función onClick utilizando este patrón:
import{ describe, it, expect, vi }from'vitest';import{ render, screen, fireEvent }from'@testing-library/react';importButtonfrom'./Button';describe('Button',()=>{it('debería llamar a la función onClick',async()=>{const handleClick = vi.fn();render(<*Button label="Clic" onClick={handleClick}/>);const button = screen.getByText('Clic'); fireEvent.click(button);expect(handleClick).toHaveBeenCalledTimes(1);});});
¿Cómo gestionar errores comunes en el testing?
Es posible encontrarse con errores de sintaxis o de ejecución. Por ejemplo, si el botón no se renderiza porque falta la propiedad label, aparecerá un error que nos alertará. Asegúrate de corregirlo antes de continuar.
¿Por qué es importante una buena estructura en los tests?
Tener una estructura clara y concisa en los tests, utilizando patrones como Arrange, Act, Assert, ayuda enormemente a mejorar la organización y comprensión. Además, permite modificar y escalar los tests con más facilidad.
Al aplicar estos conceptos, tus tests serán más robustos y efectivos frente a los cambios o actualizaciones en el código.
Te invito a seguir explorando y aprendiendo nuevas técnicas en el mundo del testing para mejorar la calidad de tus aplicaciones. 🚀