小编Dig*_*der的帖子

使用Moq通过任何键和值设置任何

在问题的最后: 使用Moq在C#中设置索引器,有一个问题是有人突出显示了我遇到的问题.但他们没有找到解决方案.

具体来说,我正在尝试使用泛型It.IsAny<string>作为键的匹配器并通过设置值It.IsAny<object>.通过索引访问并设置值时,它永远不会匹配,也不会访问我的回调方法.所以我的单元测试失败了.

var stateTable = new HashTable;
var httpSession = new Mock<HttpSessionStateBase>();

//works via httpSession.Add(key, value);
httpSession.Setup(x => x.Add(It.IsAny<string>(), It.IsAny<object>()))
    .Callback((string index, object value) => {
        var i = index;
        var v = value;

            stateData[i] = v;
    });

//does not work via httpSession[key] = value;
httpSession.SetupSet(x => x[It.IsAny<string>()] = It.IsAny<object>())
    .Callback( (string index, object value) => {
        var i = index;
        var v = value;

        stateData[i] = v;
});
Run Code Online (Sandbox Code Playgroud)

我正在使用Moq 4.0.10827

c# unit-testing indexer moq

11
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

indexer ×1

moq ×1

unit-testing ×1