是什么導致了這個異常?我正在嘗試Moq用來模擬Microsoft.Office.Interop.Excel.Range. 我想在Range里面嵌套另一個嘲笑。但是當我嘗試訪問嵌套異常時,會拋出異常。例外無法將 [] 索引應(yīng)用于“Castle.Proxies.RangeProxy”類型的表達式代碼[TestMethod]public void RangeProxyIndexTest(){ // creating first range var cell1 = new Moq.Mock<Range>(); cell1.Setup(c => c.Value2).Returns("1"); var range1Mock = new Moq.Mock<Range>(); range1Mock.SetupGet(r => r[1, Moq.It.IsAny<Object>()]).Returns(cell1.Object); var range1 = range1Mock.Object; // creating second range var cell2 = new Moq.Mock<Range>(); cell2.Setup(c => c.Value2).Returns("2"); var range2Mock = new Moq.Mock<Range>(); range2Mock.SetupGet(r => r[1, Moq.It.IsAny<Object>()]).Returns(cell2.Object); var range2 = range2Mock.Object; // merging both ranges into 1 var range3Mock = new Moq.Mock<Range>(); range3Mock.SetupGet(r => r[1, Moq.It.IsAny<Object>()]).Returns(range1); range3Mock.SetupGet(r => r[2, Moq.It.IsAny<Object>()]).Returns(range2); var range3 = range3Mock.Object; // testing succeeds Assert.AreEqual("1", range1[1].Value2); Assert.AreSame(range1, range3[1]); Assert.AreEqual("2", range2[1].Value2); Assert.AreSame(range2, range3[2]); // exceptions are thrown here Assert.AreEqual("1", range3[1][1].Value2); Assert.AreEqual("2", range3[2][1].Value2);}
1 回答

胡子哥哥
TA貢獻1825條經(jīng)驗 獲得超6個贊
雖然情況不同,但這個異常的原因和你打開的另一個問題完全一樣。
將您的驗證部分更改為:
Assert.AreEqual("1", (range3[1] as Range)[1].Value2); Assert.AreEqual("2", (range3[2] as Range)[1].Value2);
- 1 回答
- 0 關(guān)注
- 231 瀏覽
添加回答
舉報
0/150
提交
取消