2009-10-15 5 views
4

J'apprends Moq, et je voudrais me moquer d'une interface ISecureAsset qui a une propriété Contexts qui renvoie une liste de SecurityContexts. Je suis en train de tester une méthode sur une autre classe qui accède à la propriété Contexts pour l'autorisation.Mocking un appel à un objet avec une propriété de type Liste

public interface ISecureAsset { 

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

Comment puis-je faire cela avec Moq? Je veux également pouvoir définir les valeurs dans la liste Contextes.

Répondre

4

Configurez simplement la propriété pour retourner une fausse liste de SecurityContexts.

var mockAsset = new Mock<ISecureAsset>(); 

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

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

Le Moq quickstart guide peut être une aide pour vous.

+0

bien acceptés dans les moins d'une minute ... est que une sorte de record? – womp

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

ou

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