es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo comprobar si el componente importado en mi devolución existe en el documento con React Testing Library?

Tengo un componente que devuelve otro componente importado (HelloComponent). En mi prueba, quiero comprobar que HelloComponent está en el documento.

Mi componente:

import HelloComponent from ‘./helloComponent’;

const Plans: FC = () => {
return (

);
};
export default Plans;

Mi prueba:

describe(‘plans’, () => {

it(‘renderiza el componente de planes’, async () => {
render();
// aquí es donde comprobaría si HelloComponent está en el documento. ¿Cómo lo hago?
});
}

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para probar si el HelloComponent está en el documento, puedes usar el método getByRole de “react-testing-library”. Este método se puede usar para obtener un elemento en el documento que coincida con un rol especificado. Ya que los componentes funcionales como “HelloComponent” no tienen un rol predeterminado, se puede utilizar un rol personalizado para el componente.

    Primero, agrega un atributo data-testid al “HelloComponent”:

    import HelloComponent from './helloComponent';
    
    const Plans: FC = () => {
      return (
        <div>
           <hellocomponent data-testid="hello-component"></hellocomponent>
        </div>
      );
    };
    
    export default Plans;
    

    Luego, en la prueba, puedes usar el método getByTestId para obtener el “HelloComponent” en el documento:

    import { render } from '@testing-library/react';
    import Plans from './Plans';
    
    describe('plans', () => {
    
      it('renders the plans component', async () => {
        const { getByTestId } = render(<plans></plans>);
        const helloComponent = getByTestId('hello-component');
        expect(helloComponent).toBeInTheDocument();
      });
    
    });
    

    Aquí, getByTestId devuelve el elemento con data-testid=”hello-component”. El método toBeInTheDocument comprueba si el elemento está en el documento.

Comments are closed.