2013-03-08 27 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);