次のインターフェースがあります
public interface IMyInterface
{
string this[string key] { get; set; }
}
テストにget/setを実装したい
var _Nvp = //...
var mockMyInterface = new Mock<IMyInterface>();
mockMyInterface
.Setup(e => e[It.IsAny<string>()])
.Returns((string key) => _Nvp[key]);
mockMyInterface
.SetupSet(c => c[It.IsAny<string>()] = It.IsAny<string>())
.Callback((string key, string value) => { _Nvp[key] = value; }));
しかし、それは機能しません。エラーもメッセージもありません。
var oj = mockMyInterface.Object;
oj["key"] = "value";
var value = oj["key"];
変数値は常にnullです。