Desprenda-se de convenções de nomenclatura em nome de testes

Eu compartilho da opinião de Jimmy Bogard, que diz que os nomes dos testes precisam descrever o que e o porque, a partir da perspectiva do usuário, onde o desenvolver possa ler o nome do teste e claramente entender o comportamento que é esperado.

Um teste unitário nada mais é que um método em uma classe, e tanto em C# como Java, existem convenções de nomenclatura de métodos.

Em C#, nome de métodos são declarados utilizando Pascal Case:

[TestMethod]
public void ProductShouldHaveAtLeastOneCategory()
{
  //Test implementation.
}

Já em Java, convencionou-se escrever métodos utilizando Camel Case:

@Test
public void productShouldHaveAtLeastOneCategory() {
  //Test implementation.
}

Muitas vezes, o nome desses testes (métodos) ficam um tanto longos, como os exemplos acima. Dessa forma, a legibilidade não é muito boa.

Seguindo um dos conselhos de Neal Ford, em sua apresentação 10 Ways to Improve Your Code, você pode deixar de lado as convenções de nomenclatura da linguagem em favor da legilidade dos nomes dos seus testes. Escreva o nome do teste como se fosse uma frase, nada de letras maiúsculas para cada palavra, e use “_” (underscore) para separar as palavras.

Veja como fica o exemplo acima em C#:

[TestMethod]
public void Product_should_have_at_least_one_category()
{
  //Test implementation.
}

E agora em Java:

@Test
public void product_should_have_at_least_one_category() {
  //Test implementation.
}

Não há nenhum mal em se desprender das convenções de nomenclatura de C# e Java em prol da legibilidade dos nomes dos testes. Afinal, testes são uma documentação executável e nós queremos uma documentação clara para nosso código.


Post original:
http://prodis.pro.br/2009/11/21/desprenda-se-de-convencoes-de-nomenclatura-em-nome-de-testes

.

Exibir ComentáriosOcultar Comentários

2 Comments

  • demetrio
    Posted 01/12/2009 at 17:10 0Likes

    Seria legal darem uma revisada no tema dos blogs da Locaweb. O tema default sem dúvida é muito bom, mas já existem temas que mostram últimas atualizacoes, comentarios, chamadas, etc

  • Fernando Hamasaki de Amorim
    Posted 16/12/2009 at 06:44 0Likes

    Concordo com você, Demetrio.
    Vou pedir para os responsáveis reverem isso. Você sugere algum tema?

Comments are closed.