Testar um alias

Testar um alias de um método que tem algumas regras. Como testar isso?

Eu não gostaria de rodar os mesmos testes para este alias pois repetiria código. Tem algum tipo de should_be_alias no rspec?

Me deram a sugestão de alterar o metodo original e ver se o mesmo foi executado mas acho isso muito “invasivo”. Tem outra solução?

Testar se o alias funciona, ou seja, se ao chamá-lo o método adequado é chamado não seria o mesmo que testar o Ruby (supondo que usará a palavra-chave alias)? Neste caso, considerando que o Ruby já tem seus próprios testes para essa palavra-chave, o seu teste não seria desnecessário?

É possivel, porém imagine que eu tenho 4 metodos e um alias para um deles.

Um dia um desenvolvedor altera o alias, como eu vou saber?

Se eu repetir os testes do metodoX para o alias eu vou saber, mas ai é chato.

Eu poderia testar se na minha classe o metodo alias_method é chamado com os 2 parametros mas uma vez que a classe é carregada pelo ruby, como testar isso?

[quote=peczenyj]É possivel, porém imagine que eu tenho 4 metodos e um alias para um deles.

Um dia um desenvolvedor altera o alias, como eu vou saber?

Se eu repetir os testes do metodoX para o alias eu vou saber, mas ai é chato.

Eu poderia testar se na minha classe o metodo alias_method é chamado com os 2 parametros mas uma vez que a classe é carregada pelo ruby, como testar isso? [/quote]
Realmente, seria bom testar o alias pra garantir que a situação apontada por você não aconteça sem ser detectada.

Também não sei como testar isso, mas ao pesquisar sobre o assunto, achei a seguinte página: http://rubyforge.org/pipermail/test-unit-tracker/2009-October.txt. Nela, é sugerido usar o seguinte código:

No entanto, eu testei aqui, e o instance_method não funcionou. Ele deu false ao fazer a comparação de um método e seu alias.

Falei besteira no post anterior. O código abaixo funcionaria pra testar um alias:

Obviamente o teste só passaria se full_name fosse um alias de name. Deve ter dado errado quando tentei ontém por ter usado o alias ao invés do alias_method.

Wow!

funciona 100%

Valeu, ficou muito bom!!