相关疑难解决方法(0)

如何模拟Excel VSTO插件中的行?

我试图在Range一个新的行中放置一个模拟(包含值的单元格)Range.但是当我尝试从中访问特定元素时Range,会抛出异常.

我已经尝试了一切,有没有人知道我在这里做错了什么?

例外

消息:测试方法xxx.MockUtilsTest.MockRowsTest引发异常:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:无法将带有[]的索引应用于类型为"Castle.Proxies.RangeProxy"的表达式

测试

[TestMethod]
public void MockRowsTest()
{
    var row1 = MockUtils.MockCells("test_row_1", "test_row_1");
    var row2 = MockUtils.MockCells("test_row_2", "test_row_2");
    var range = MockUtils.MockRows(row1, row2);

    Assert.IsNotNull(range);
    Assert.AreEqual(2, range.Count);
    Assert.IsNotNull(range.Rows);
    Assert.AreEqual(2, range.Rows.Count);
    Assert.AreSame(row1, range.Rows[1].Cells[1]); // exception is thrown here
    Assert.AreSame(row2, range.Rows[2].Cells[1]);
    Assert.AreEqual("test_row_1", range.Rows[1].Cells[1].Value2);
    Assert.AreEqual("test_row_2", range.Rows[2].Cells[1].Value2);
}
Run Code Online (Sandbox Code Playgroud)

MockUtils

public static Range MockCellValue2(Object value)
{
    var cell = new Moq.Mock<Range>();
    cell.Setup(c => c.Value2).Returns(value);

    return cell.Object;
}

public static Range MockCells(params Object[] values)
{
    var cells = new …
Run Code Online (Sandbox Code Playgroud)

c# excel vsto unit-testing moq

14
推荐指数
1
解决办法
309
查看次数

标签 统计

c# ×1

excel ×1

moq ×1

unit-testing ×1

vsto ×1