Testando métodos privados

Me deparei com uma thread interessante sobre unit test no StackOverflow (melhor site para postar dúvidas na minha opinião):

A dúvida era como testar unitariamente métodos privados.

Destaco duas respostas técnicas: utilizar o atributo InternalsVisibleToAttribute (http://devlicio.us/blogs/derik_whittaker/archive/2007/04/09/internalsvisibleto-testing-internal-methods-in-net-2-0.aspx), que faz com que tipos fiquem visíveis para unit tests, mas que acabam deixando "rastros" nos assemblies quando compilados mesmo em modo Release; utilizar AccessPrivateWrapper (http://www.amazedsaint.com/2010/05/accessprivatewrapper-c-40-dynamic.html), que encapsula o acesso a métodos privados através do dynamic do C# 4.0.

Mas a melhor resposta, na minha opinião, não é nenhuma dessas e sim uma conceitual: métodos privados não deveriam ser alvo de testes unitários.

Sugiro dar uma olhada no fórum: http://stackoverflow.com/questions/250692/how-do-you-unit-test-private-methods

[]'s

Comentários

Postagens mais visitadas deste blog

Trocando configurações padrão do Live TIM

Testes automatizados em sistemas autenticados com certificados digitais, usando Selenium e PhantomJS

Uma proposta de Clean Architecure com Modelo de Atores