2009-10-15 84 views
4

我正在學習Moq,並且我想模擬一個接口ISecureAsset,它具有一個屬性Contexts,它返回SecurityContexts列表。我正在測試另一個訪問Contexts屬性授權的類的方法。嘲笑對類型爲List的屬性的對象的調用

public interface ISecureAsset { 

    List<SecurityContext> Contexts { get; set; } 
} 

我怎樣才能做到這一點與起訂量?我希望能夠在上下文列表中設置值。

回答

4

只需設置該屬性即可返回僞造的SecurityContext列表。

var mockAsset = new Mock<ISecureAsset>(); 

var listOfContexts = new List<SecurityContext>(); 
//add any fake contexts here 

mockAsset.Setup(x => x.Contexts).Returns(listOfContexts); 

Moq quickstart guide可能對您有些幫助。

+0

接受在一分鐘內...是某種記錄? – womp 2009-10-15 04:00:59

2
var mockSecureAsset = new Mock<ISecureAsset>(); 
mockSecureAsset.SetupGet(sa => sa.Contexts).Return(new List<SecurityContext>()); 

mockSecureAsset.SetupProperty(sa => sa.Contexts); 
mockSecureAsset.Object.Contexts = new List<SecurityContext>();