O problema
Testes de API frequentemente precisam de usuários autenticados, tokens e dados preparados antes da execução. Repetir esse processo em cada cenário gera duplicação.
Preparação manual
const user = createUser();
await usersService.register(user);
const login = await authService.login(
user.email,
user.password
);
A lógica funciona, mas espalha responsabilidade de preparação.
Criando uma fixture reutilizável
apiUser: async ({ request }, use) => {
const user = createUser();
await usersService.register(user);
const login = await authService.login(
user.email,
user.password
);
await use({
email: user.email,
token: login.access_token
});
}
O teste passa a receber apenas os dados necessários.
Benefícios
- Menos código duplicado.
- Usuários isolados por teste.
- Autenticação centralizada.
- Maior legibilidade.
Boas práticas
- Evitar fixtures com muitas responsabilidades.
- Criar nomes claros.
- Preparar somente dados necessários.
Conclusão
Fixtures tornam a preparação dos testes uma camada reutilizável e permitem que os cenários foquem no comportamento validado.