私はmoqを使ってC#コードをテストしています。テストされたメソッドには引数としてIDataReaderが渡されます。私はMockを使って、各フィールドのキーと値を設定してデータリーダーをモックしました(redare.Setup(x => x ["fieldName"])。しかし、テストされたメソッドで呼び出されるメソッドもあります。読者が読んでいるフィールドが存在する場合、呼び出されたメソッドはテストしています。私は嘲笑されたリーダーがMocked reader.Objectを使ってIDataReaderにキャストされたときに、カウントされたフィールドがないことを発見しました。誰でも私にフィールドカウント/フィールド名を設定する方法を教えてもらえますか?どうもありがとう!モックを作る方法<IDataReader>にはフィールドカウントがありますか?
更新: 私はこの問題を解決するためにこの記事を使用しました。すべての応答ありがとう。 How to mock IDataReader to test method which converts SqlDataReader to System.DataView
あなたのテストとコードを投稿してください(同様にフォーマットされています) –
これを実証するためにリンクした投稿。 'dataReaderMock.Setup(x => x.FieldCount).Returns(2);'。それはあなたがやろうとしていることではありませんか?また、 'IDataReader'のより機能的なモックが必要な場合は、独自の実装を記述する必要があるかもしれないことを示唆しています。私はもっと情報が必要だと思う。私がテストしているコードがフィールドカウントを必要としているとは思えません。他のすべてが難しいです。私はどこかの誰かがこれに対して良いジェネリックなモックを書いていると思う。 –