Qual é a melhor maneira de testar métodos privados e protegidos no Ruby, usando a Test::Unit
estrutura padrão do Ruby ?
Tenho certeza de que alguém se manifestará e dogmaticamente afirmará que "você deve apenas testar métodos públicos por unidade; se precisar de testes unitários, não deve ser um método protegido ou privado", mas não estou realmente interessado em debater isso. Eu tenho vários métodos que são protegidos ou privados por boas e válidas razões, esses métodos privados / protegidos são moderadamente complexos e os métodos públicos da classe dependem desses métodos protegidos / privados funcionando corretamente, portanto, preciso de uma maneira de testar os métodos protegidos / privados.
Mais uma coisa ... Eu geralmente coloco todos os métodos para uma determinada classe em um arquivo e os testes de unidade para essa classe em outro arquivo. Idealmente, eu gostaria que toda a mágica implementasse essa funcionalidade de "teste de unidade de métodos protegidos e privados" no arquivo de teste de unidade, não no arquivo de origem principal, para manter o arquivo de origem principal o mais simples e direto possível.