我正在尝试模拟IDataRecord接口。
到目前为止,我有:
var mockIDataRecord = new Mock<IDataRecord>();
mockIDataRecord.SetupGet(c => c["id"]).Returns(7);
var z = mockIDataRecord["id"];
但是,Visual Studio在其最后一行抛出编译错误:
错误2无法将[]索引应用于类型'Moq.Mock '的表达式
有什么建议么?
最佳答案
错误是Visual Studio所说的。您正在将索引应用于Mock
类的实例,而不是其通用参数(在您的情况下为IDataRecord
)。使用Mock.Object
属性,该属性将返回IDataRecord并对其应用索引
var z = mockIDataRecord.Object["id"];