http://msdn2.microsoft.com/ja-jp/library/0tke9fxk(VS.80).aspx
テストを行う場合にpublicなクラスのテストを行うのはいいのですが、internalなクラスの場合にはテストを行うこともままなりません。
またあるクラスの前提条件を整えるためにも必要だったりします。
Visual Studio のクラスにはプライベートアクセッサの自動生成も存在しますが、一番簡単なのはフレンドアセンブリです。
以下のように使います。
#if DEBUG
[assembly: InternalsVisibleTo("TestSql")]
#endif
この場合TestSql.exeや、TestSql.Dllのプロジェクトからは丸裸になってしまいます。
もちろんリリース時にはこんな痕跡は残していてはいけませんので#if DEBUGはお忘れなく