无法实现资源库(最小起订量)

本文关键字:实现 资源库 | 更新日期: 2023-09-27 18:37:24

我有下一个界面

    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"];

变量值始终为空。

无法实现资源库(最小起订量)

查看以下 SO 评论。

似乎Moq在SetupSet上解析c[It.IsAny<string>()]存在限制。当指定特定键时,它似乎有效。

在您的情况下,您可能希望使用具有内部状态的存根来实现您的接口,而不是模拟。