De behaviour-driven.org intitulado "GettingTheWordsRight" :
Em resumo, as palavras que usamos para descrever as coisas influenciam a maneira como nós (e outros) pensamos sobre essas coisas. Também não se trata apenas de ser mesquinho em relação à semântica, pois certas palavras trazem nuances que afetam a maneira como interpretamos o significado de uma frase, tanto no nível intelectual quanto no emocional. Nossa linguagem é rica em palavras e frases descritivas, portanto, parece razoável usar palavras que transmitam claramente a intenção dos elementos que desejamos descrever no código.
No caso do BDD, estou pessoalmente que quase sempre usa a palavra deve ao nomear testes, porque seu uso implica que, embora a intenção é para um teste para fornecer um determinado resultado, outras consequências inesperadas podem surgir que terá de ser tratada com se um resultado do teste deve ser considerado válido. Talvez você possa usar as palavras esperar ou deveda mesma forma, no entanto, essas palavras implicam um ponto de vista mais imperativo, de modo que o nome do teste pode ser confundido com "não há nada de errado com o teste, assuma que a implementação está estragada", enquanto * deveria "implica que o teste provavelmente estar correto, mas pode precisar ser verificado novamente quanto a erros, se os resultados do teste não parecerem satisfatórios.Eu gosto disso, porque influencia o seu pensamento, de modo que você é incentivado a manter a mente aberta enquanto codifica, o que é muito É importante quando você deseja evitar um travamento enquanto tenta depurar seu código e se vê procurando erros no local errado devido a uma suposição.
No entanto, vi que a aplicação quase "religiosa" da palavra deveria falhar quando foi aplicada como um prefixo para os nomes dos testes, pois forçou os programadores envolvidos a passar por certas ginástica mental e linguística para fornecer um nome de teste que era significativo e, nesses casos, significa que a intenção de acertar as palavras não atende às suas expectativas, e os próprios testes se tornam difíceis de decifrar como resultado. Quando esse tipo de situação surge, eu usaria a palavra deveriaem qualquer local do nome do método de teste, para garantir que o nome transmita seu método de forma simples e clara. Certamente, eu não aplicaria um uso específico de palavras se outras fossem igualmente apropriadas dentro de um determinado contexto. O truque, no entanto, é escolher palavras que não deixem margem para discussões sobre o que algo representa no código, e que o levem a pensar nas coisas que seu código deve fazer sem depender de mera implicação.