Em testes normalmente nos deparamos com o dilema entre as abordagens DRY e DAMP. DRY significa Don't Repeat Yourself, que é o que fazemos normalmente quando estamos desenvolvendo para ter mais reutilização e menos repetição. DAMP significa Descriptive and Meaningful Phrases, onde o que é mais importante é a legibilidade, mesmo que isso signifique ser um pouco mais repetitivo. Quando falamos principalmente do nome dos nossos testes é importante ser mais DAMP, de forma que ao ler os describes e its nós já saibamos o que aquele teste faz sem precisar investir muito tempo lendo todo o código de teste.
describe('Validate User Register Rules', () => {
describe('validateUserEmail', () => {
it('should throw an error with existing email address given', () => {
})
it('should throw an error with null', () => {
})
it('should throw an error with an email without @', () => {
})
it('should not throw an error with valid email address that doesn\'t exist already', () => {
})
})
})
Uma dica de como validar se os nomes dos testes estão seguindo o princípio DAMP é deixar apenas os describes e its visíveis e tentar interpretar o que os testes fazem apenas utilizando essas informações sem olhar os detalhes da implementação.