我正在尝试最小起订量,但在以下测试机构中遇到了问题:
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)。
而且我不太确定它的起订量,但我正在测试的代码相当简单。我不确定这是否重要,但 ZooNode 是一个抽象类。
提前致谢。
编辑
这是darin响应建议修改后的代码:
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:对象引用未设置为对象的实例。