• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

96
Views
Compruebe si el objeto contiene un enlace en React Testing Library

Teniendo la siguiente prueba unitaria:

 const MY_URL = 'example.com' it('should render MyComponent with url', () => { const { getByTestId } = render(<MyComponent />); const myLink = getByTestId(TestIds.LINK); expect(loggingLink).toContain(MY_URL); });

La prueba falla con el siguiente mensaje:

 Expected value: "example.com" Received object: <div class="m-3" data-testid="test-link"><a href="example.com">my-link</a></div>

Entonces parece que toContain no verifica qué hay dentro de ese objeto. ¿Hay algún método para comprobar que la URL está dentro del objeto?

over 3 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Puede obtener el elemento de anclaje con la consulta ByRole . Simplemente búsquelo con el link y luego verifique el atributo href :

 // I used screen in this case, but you can get getByRole from render. const anchorElement = screen.getByRole('link'); expect(anchorElement).toBeInTheDocument(); expect(anchorElement).toHaveAttribute('href', 'example.com');

Los elementos de anclaje tienen un rol de link solo cuando el atributo href está presente; de lo contrario, no tienen el rol correspondiente. Puedes consultar más al respecto aquí .

over 3 years ago · Juan Pablo Isaza Report

0

Hay un par de cosas. Primero, toContain es para probar si existe un elemento en una matriz. https://jestjs.io/docs/expect#tocontainitem

En segundo lugar, el objetivo de RTL no es probar propiedades y demás, sino probar lo que los usuarios ven en la pantalla. Así que supongo que la "manera RTL" de hacer esto sería hacer clic en el enlace y ver lo que se muestra. ¡Lo cual es cierto que no siempre es útil en todas las situaciones!

Si está absolutamente seguro de que esta URL necesita una prueba, entonces tiene una escotilla de escape a través de los selectores jsdom subyacentes de jest . Puede consultar un elemento utilizando un querySelector estándar de bog y luego probar la propiedad href directamente.

De hecho, ni siquiera necesita querySelector. Todos los métodos getBy devuelven un objeto jsdom que luego puede probar con getAttribute('href')

over 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error