模拟索引属性

我正在使用Moq编写unit testing。 我创建了一个模拟对象。 现在,当我尝试模拟其属性时,我收到错误“表达式树可能不包含索引属性”

这是我的代码。

public Node GetNode(IMyInterface interface, string itemName) { return interface.Items[itemName]; } 

这是unit testing

 var expected = new Node(); var itemName = "TestName"; var mock = new Mock(); mock.Setup(f => f.Items[itemName]).Returns(expected); var target = new MyClass(); var actual = target.GetNode(mock.Object, itemName); Assert.AreEqual(expected, actual); 

这条线给了我错误。

 mock.Setup(f => f.Items[itemName]).Returns(expected); 

我怎么能这个function。

接口是一个COM对象并且有get函数,所以不使用索引器直接访问属性使用get函数,

 mock.Setup(f => f.get_Items(itemName)).Returns(expected);