2011-08-02 8 views
3

IDataRecordインターフェイスをモックしようとしています。Moockを使用してIDataRecordをモック

は、これまでのところ私が持っている:部品番号「タイプの表現に[]でインデックスを適用することはできません

エラー2:

 var mockIDataRecord = new Mock<IDataRecord>(); 
     mockIDataRecord.SetupGet(c => c["id"]).Returns(7); 
     var z = mockIDataRecord["id"]; 

しかし、Visual Studioは、その最後の行にコンパイルエラーがスローされます。モック<System.Data.IDataRecord> '

何か提案がありますか?

答えて

4

エラーは、Visual Studioが言うことです。 Mockクラスのインスタンスにインデックスを適用しています。一般的なパラメータではありません(IDataRecord)。 Mock.Object IDataRecordを返してインデックスを適用するプロパティ

var z = mockIDataRecord.Object["id"]; 
0

あなたは(IDataRecordタイプの)オブジェクトのモックを作成しました。しかし、あなたはmockIDataRecordがコレクション(配列?)であることを意味するmockIDataRecord [id]にアクセスしようとしています。

タイプミスマッチはおそらくエラーの原因です。

あなたは(私は、構文をチェックしていない)の代わりにこのような何かを試すことができます:

var mockIDataRecord = new Mock<IDataRecord[]>();