¿Hay alguna diferencia entre
expect(screen.queryByText('<something>')).toBeInTheDocument();Y
screen.getByText('<something>'); (Las getBy* y queryBy* no son relevantes)
¿En react-testing-library ?
getByText intenta encontrar el nodo y arroja un error cuando no puede encontrarlo. Esto hará que la prueba falle inmediatamente.
queryByText , por otro lado, devolverá un null si no puede encontrar el nodo.
Supongamos que tiene texto <something> en el componente que se representó, puede afirmar si se ha representado o no.
Si está seguro de que el texto se ha representado, simplemente puede usar getByText
expect(screen.getByText('<something>')).toBeInTheDocument();y la prueba pasaría.
Si para el escenario el texto no se representó, la afirmación anterior generará un error y fallará el caso de prueba.
En tales casos, el texto queryByText tiene más sentido
Cuando no se ha prestado
expect(screen.getByText('<something>')).not.toBeInTheDocument(); // throws an error expect(screen.queryByText('<something>')).not.toBeInTheDocument(); // asserts as true