Testing Internal APIs may sound superfluous but it's necessary. It increases the team's confidence in the codebase as well as be more creative with regards to maintaining and refactoring the codebase.
In C/C++, the symbols of internal APIs are exposed in Debug builds so these can be unit tested. In .NET, these internal APIs need be a 'Friend' and use the InternalsVisibleTo Assembly instruction like the following
<Assembly: InternalsVisibleTo("MyUnitTestProject")>
That's all there is and you can start unit testing your project's internal APIs. See
http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.internalsvisibletoattribute.aspx for more info on InternalsVisibleTo.