有問題,我嘗試起訂量和我遇到一個問題,下面的測試體:與MOQ
var child = new Mock<ZooNode>();
var parent = new Mock<ZooNode>();
child.Object.Parent = parent.Object;
parent.Expect(p => p.Children.Contains(child.Object)).Returns(true);
會拋出:
System.ArgumentException:無效 預期上一個不可覆蓋的 成員:p => p.Children.Contains(value(ZooCms.Core.Tests.Model.ZooNodeTest + <> c__DisplayClass0).child.Object)。
我不太確定它的moq,但我測試的代碼非常簡單。我不確定它是否重要,但ZooNode是一個抽象類。
在此先感謝。
編輯
繼承人從darin's response代碼建議修訂後:
public abstract class ZooNode : ZooObject
{
private ZooNode _parent{ get; set;}
public ZooNode Parent {
get
{
return _parent;
}
set
{
if(Parent != null)
Parent.Children.Remove(value);
_parent = value;
_parent.Children.Add(this);
}
}
public virtual IList<ZooNode> Children { get; private set; }
}
現在拋出
試驗方法 ZooCms.Core.Tests.Model.ZooNodeTest .TestSetParentAddsNodeToParentNodeList 拋出異常: System.NullReferenceException:對象 引用未設置爲一個 對象的實例..
當我嘗試,我得到下面的異常信息:System.NullReferenceException: ZooCms.Core.Tests.Model.ZooNodeTest.TestSetParentAddsNodeToParentNodeList拋出異常檢測方法的對象引用不設置到對象的實例.. – Chance 2009-01-18 20:45:18