Configuração
Esta página foi traduzida por PageTurner AI (beta). Não é oficialmente endossada pelo projeto. Encontrou um erro? Reportar problema →
Quando os usuários interagem no navegador, por exemplo pressionando teclas, eles interagem
com uma camada de UI que o navegador exibe. O navegador então interpreta essa
entrada, possivelmente altera o DOM subjacente e despacha eventos
trusted.
A camada de UI e os eventos trusted não estão disponíveis programaticamente.
Portanto, user-event precisa aplicar soluções alternativas e simular a camada de UI para
reproduzir interações de usuário como ocorreriam no navegador.
Iniciando uma sessão com setup()
setup(options?: Options): UserEvent
A API userEvent.setup() aplica essas soluções ao documento e permite
que você configure uma "instância" do user-event.
Os métodos dessa instância compartilham um estado de dispositivo de entrada, por exemplo quais teclas
estão pressionadas.
Isso permite escrever múltiplas interações consecutivas que se comportam exatamente como as interações descritas por um usuário real.
import userEvent from '@testing-library/user-event'
const user = userEvent.setup()
await user.keyboard('[ShiftLeft>]') // Press Shift (without releasing it)
await user.click(element) // Perform a click with `shiftKey: true`
A instância expõe outra API .setup() que permite configurar uma nova
instância compartilhando o mesmo estado de dispositivo de entrada.
A Clipboard API
normalmente não está disponível fora de contextos seguros.
Para habilitar testes de fluxos envolvendo a área de transferência,
userEvent.setup() substitui window.navigator.clipboard por um
stub.
APIs diretas
Você também pode chamar as APIs diretamente na exportação padrão. Isso invocará
setup internamente e usará o método na instância.
Isso existe para facilitar a transição para a versão 14 e escrita de testes simples. Recomenda-se
usar os métodos nas instâncias retornadas por userEvent.setup().