Vari√°veis ‚Äč‚Äčaleat√≥rias para teste

Sempre que estou testando, gosto de usar vari√°veis ‚Äč‚Äčaleat√≥rias que posso inspecionar posteriormente para confirmar uma opera√ß√£o sem o risco de vari√°veis ‚Äč‚Äčm√°gicas mascararem falhas. Neste exemplo simples

name = "Bill"
account
= Account.new(name: name)
account
.name.should eq(name)

Eu substituiria “Bill” da seguinte maneira

name = random_string
account
= Account.new(name: name)
account
.name.should eq(name)

Essa abordagem me permite ter mais certeza de que estou testando o comportamento em vez da configuração dos acessórios.

Para simplificar isso, criei vários métodos auxiliares que incluo em meus conjuntos de testes. O random_stringmétodo seria mais ou menos assim

def random_string
(0...24).map{ ('a'..'z').to_a[rand(26)] }.join
end

Eu compartilhei uma série deles aqui

https://gist.github.com/adambird/5582273