我有一个单元测试课,我在工厂做一些测试。在这个单元测试中,我模拟了一些数据。在模拟数据中,我在NumberModel中有NumberModel(父模型),我有一个名为ReferenceModel的嵌套模型列表。我已经在同一行上为它们添加值时实例化了许多列表,但是当我尝试用我的嵌套模型列表执行此操作时,我发现我不能。
这是单元测试类的片段,我在这里嘲笑我的数据。
_numberModel = new NumberModel()
{
value1 = 1,
value2 = x,
referenceList = new List<ReferenceModel> { ID = 55, NumberType = Mean } < -- These show undefined
};
我在这里做错了什么?我是否需要深入查看父模型中的嵌套列表,以便定义嵌套的模型列表?
答案 0 :(得分:5)
您正在混合集合初始值设定项和对象初始值设定项。代码
new List<ReferenceModel> { foo }
这是:
var list = new List<ReferenceModel>();
list.Add(foo);
所以你需要实例化一个ReferenceModel
:
new List<ReferenceModel> { new ReferenceModel { ID = 55, NumberType = Mean } }
答案 1 :(得分:3)
初始化列表时,您必须单独初始化每个项目:
_numberModel = new NumberModel()
{
value1 = 1,
value2 = x,
referenceList = new List<ReferenceModel> {
new ReferenceModel {ID = 55, NumberType = Mean}
}
};
您使用的语法适用于本机类型(double,int)的数组,但不适用于具有属性的类。