6

readonly 修飾子を持つクラスの Moq のアイデア:

Class myClass
{
   private  int id;
   public int Id{ get {return id;}}

  public myClass(int id)
  { this.id  = id }
}

私はこのオブジェクトをモックしようとしていました:

var myMock= new Mock<myClass>();
myMock.SetupGet(m => m.ID).Return(555);

エラーが返されました:

System.ArgumentException: オーバーライド不可能なメンバー m=>m.ID の設定が無効です。

何か案が?

4

2 に答える 2

11

問題は、それが読み取り専用であることではなく、仮想ではないことです。

于 2009-06-18T21:43:05.447 に答える
2

クラスおよびシールされたクラスの非仮想メソッドを変更できる、私が知っている唯一のモッキング エンジンは Typemock です。

他のモッキング フレームワークのほとんどは、インターフェイスを使用するとうまく機能します。インターフェイスが利用できない場合、モックされるメンバーは仮想である必要があります。

于 2009-06-22T15:11:08.057 に答える