1

クラス変数として次のコード例があります。

protected static readonly string _url = "SomeURL";

その _url 変数に、スタブ型またはモール型のいずれかでアクセスしたいと考えています。私がテストしたところ、スタブ型を介して public static クラス変数にアクセスできます。ただし、プライベートまたは保護された静的クラス変数ではありません。モルからプライベートまたは保護されたクラス変数にアクセスすることに関するアイデアはありますか? とても役に立ちます。

ありがとうございました !

4

1 に答える 1

0

保護された静的変数を含むクラスから派生するスタブを作成できます。実際にテストしようとしているクラスではなく、テストでスタブを使用します。

public class MyActualClass
{
  protected static readonly string _url = "SomeURL";
  //... other code
}

public class MyActualClassStub : MyActualClasss
{
  public string GetUrlValue()
  {
    return _url;
  }
}

そんな感じ。ただし、読み取り専用のメンバーまたはプロパティの値は変更できないことに注意してください。

編集:ほくろでこれを行う方法について具体的に尋ねられたことに気づきました。私はほくろを使用したことがないので、その方向でアドバイスを提供することはできません. ただし、上記のアプローチは、テスト シナリオで保護されたメンバー、プロパティ、またはメソッドを "取得" する必要がある多くの状況で役立ちます。

于 2014-04-09T08:02:31.967 に答える