2013-03-08 79 views
1

我在我的[TestInitialize]块中有以下代码,并试图初始化我的对象上的List<T>属性。如何初始化模拟对象中的列表<T>属性?

[TestClass] 
public class MyTest 
{ 
    private MyClass myClass; 
    private Mock<myClassA> mockMyClassA; 
    private List<Mock<myClassB>> mockMyClassB; //OK 

    [TestInitialize] 
    public void Setup() 
    { 
     mockMyClassA = new Mock<myClassA>(); 
     mockMyClassB = new List<Mock<myClassB>>(); //OK 


     myClass = new MyClass 
     { 
      MyClassA = mockMyClassA.Object, 
      MyClassB = mockBenefitsCoordination //None of this works 
      { 
       new Mock<mockMyClassB>() 
        { 
         //PropertyValue = mock??        
        }      
      } 
     } 

我得到的错误是:

Cannot convert source type 'System.Collections.Genric.List<Moq.Mock<MyClassB>>' to target type 'System.Collections.Generic.IList<MyClassB>>' 

OK我看到List<T> to IList<T>问题。 MyClassBIList<T>。我试图改变它没有成功。基本上我认为我有用于获取使用Moq配置List属性的全部语法。有谁知道如何正确配置这个?

+0

我不知道起订量由心脏(有我的大部分与犀牛嘲笑经验),但能起订量产生嘲笑上课?你想用'新列表<模拟>'做什么?难道你不想仅仅用'myClassB'的对象来存储一个列表,在这种情况下,它会模拟对象吗?因为那么界面仍然会是'List '(只有我认为你应该有类似'List '的东西) – bas 2013-03-08 21:09:42

回答

2

你不想用模拟来初始化列表。您想要使用具体对象执行列表初始化,并将模拟对象添加到该列表中。

喜欢的东西

private List<myClassB> myClassBList; 
myClassBList.Add(new Mock<myClassB>.Object);