Использование Moq для установки любого с помощью любого ключа и значения

В конце вопроса: При использовании Moq для установки индексаторов в C # возникла проблема, связанная с тем, что кто-то указал на проблему, которая есть у меня. Но они не нашли решения.

В частности, я пытаюсь использовать общий It.IsAny в качестве сопоставителя для ключа и устанавливаю значение через It.IsAny . При доступе через индекс и установке значения оно никогда не совпадает и не обращается к моему методу обратного вызова. И поэтому мои модульные тесты не работают.

var stateTable = new HashTable;
var httpSession = new Mock();

//works via httpSession.Add(key, value);
httpSession.Setup(x => x.Add(It.IsAny(), It.IsAny()))
    .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()] = It.IsAny())
    .Callback( (string index, object value) => {
        var i = index;
        var v = value;

        stateData[i] = v;
});

Я использую Moq 4.0.10827

11
задан Community 23 May 2017 в 12:16
поделиться