zum*_*ard 5 .net excel vsto moq mocking
这个问题清楚地展示了如何使用 MOQ 模拟索引属性:How to Moq Setting an Indexed property
但是,如果您有两个索引怎么办?
例如,假设您有一个 _Worksheet 对象(来自 vsto)
var mockWorksheet = new Mock<_Worksheet>();
Run Code Online (Sandbox Code Playgroud)
您想创建一个名为 Cells 的属性,以便您可以像这样使用它:
var range = worksheet.Cells[1,1];
Run Code Online (Sandbox Code Playgroud)
注意:范围可以是另一个模拟,可以用以下方法模拟: var mockRange = new Mock();
有什么建议?
您可以像其他任何东西一样模拟属性索引器。它们被视为属性访问器,因此您可以使用SetupGet:
var mockWorksheet = new Mock<Worksheet>();
var mockRange = new Mock<Range>();
var mockCell = new Mock<Range>();
// Setup the Cells property to return a range
mockWorksheet.SetupGet(p => p.Cells).Returns(mockRange.Object);
// Setup the range to return an expected "cell"
mockRange.SetupGet(p => p[1, 2]).Returns(mockCell.Object);
var expectedCell = mockWorksheet.Object.Cells[1, 2];
// expectedCell == mockCell.Object
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1348 次 |
| 最近记录: |