1. ホーム
  2. c#

[解決済み] インデックス付きプロパティのMOQの付け方

2023-01-09 23:17:29

質問

インデックス付きのプロパティへの呼び出しをモック化しようとしています。すなわち、私は次のようにモックしたいと思います。

object result = myDictionaryCollection["SomeKeyValue"];

と、セッターの値も

myDictionaryCollection["SomeKeyValue"] = myNewValue;

私のアプリが使用するクラスの機能をモック化する必要があるため、このようにしています。

誰かMOQでこれを行う方法を知っていますか?私は以下のバリエーションを試しました。

Dictionary<string, object> MyContainer = new Dictionary<string, object>();
mock.ExpectGet<object>( p => p[It.IsAny<string>()]).Returns(MyContainer[(string s)]);

しかし、これではコンパイルできません。

私が達成しようとしていることはMOQで可能ですか、誰かこれを行うことができる例をお持ちですか?

どのように解決するのですか?

MOQで行おうとしていたことができないようです。

本質的に、私は、インデックスに設定される項目のキーが実行時にのみ決定される HTTPSession タイプのオブジェクトを MOQ しようとしていました。インデックス付きのプロパティへのアクセスは、以前に設定された値を返す必要がありました。これは整数ベースのインデックスでは動作しますが、文字列ベースのインデックスでは動作しません。