UnitTestするです。
UnitTest時にはprivateな変数やメソッドも使いたいって
シチュエーションが少なからずあるですよ。
C++ならば:
#ifdef UNITTEST
#define private public
#endif
class foo {
private: // UNITTEST定義時にはpublicにすり替わる
  int n;
  void f();
};
なんてマネができます。
...さて、C#ではどぉしましょぉ...悩んでいます。
class foo {
  private int n;
  private int f() { ... }
#if UNITTEST
  public int n_ { get { return n; } set { n = value; }}
  public int f_() { return f(); }
#endif
}
ですか? エレガンスに欠けるんですケド...