gpt4 book ai didi

c# - 模拟索引属性

转载 作者:可可西里 更新时间:2023-11-01 09:06:26 26 4
gpt4 key购买 nike

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

这是我的代码。

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

这是单元测试

var expected = new Node();
var itemName = "TestName";
var mock = new Mock<IMyInterface>();
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);

我怎样才能起订这个功能。

最佳答案

Interface 是一个 COM 对象并且有 get 函数,所以不要使用 indexer 直接访问属性,而是使用 get 函数,

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

关于c# - 模拟索引属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11520291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com