La presunzione iniziale che sia necessario testare il metodo interno è un malinteso comune sui principianti riguardo ai test unitari.
Concesso, possono esistere casi in cui i metodi privati devono essere testati isolatamente, ma il caso comune del 99% è che i metodi privati vengono testati implicitamente perché fanno sì che i metodi pubblici superino i test. I metodi pubblici chiamano i metodi privati.
I metodi privati ci sono per un motivo. Se non comportano un comportamento testabile esterno, non ne hai bisogno.
I test pubblici falliscono se si eliminano completamente? Se sì, allora sono già stati testati. Se no, allora perché ne hai bisogno? Scopri quello che ti serve e poi esprimilo in un test contro l'interfaccia pubblica.
Un vantaggio principale con TDD è che il codice diventa facile da modificare. Se inizi a testare internals, il codice diventa rigido e difficile da modificare.
Moq non è un'alternativa a MSTest o mbunit. sono entrambi framework di testing unitario, mentre Moq è un framework beffardo. sebbene quasi sempre usati in congiunzione, sono due cose molto diverse. btw +1 al tuo capo, Moq è eccellente ;-) –