9
我正在使用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);
我該怎麼辦這個功能。
這不是一個問題,起訂量直接訪問屬性。表達式樹不能包含索引屬性,因爲錯誤狀態。您應該重構代碼以訪問列表中的項目,而不是使用索引。 – 2012-07-17 10:12:50
我無法更改「interface.Items [itemName];」因爲我通過COM獲得它,任何方式在測試中做到這一點, – 2012-07-17 10:15:58
什麼是項目?你能提供完整的接口定義嗎? – 2012-07-17 10:17:11