7
votes

Comment générer une liste de faux à l'aide de MOQ

Je veux générer une liste de faux sans spécifier toutes les propriétés du faux objet à l'aide de MOQ:

var mock = Mock.Of<ICalendar>(x =>
    x.GetSchedules() == new List<ISchedule> 
    {
        // I don't want specify explicitly title and other properties
        Mock.Of<ISchedule>(y => y.Title == "fdfdf" && y.Start == DateTime.Today)
    });

List<ISchedule> s = mock.GetSchedules();


0 commentaires

3 Réponses :


1
votes

Vous pouvez créer une classe d'abstraction SchedulemockBuilder qui construit une maquette d'ischedule avec des données aléatoires. Appelez ensuite ce constructeur autant de fois que vous avez besoin d'articles dans la liste.

vérifier le modèle de constructeur pour plus d'informations.

Vous pouvez également utiliser QuickGenerate ; C'est une bibliothèque avec un constructeur générique qu'un collègue à moi a écrit. Il peut générer des objets avec des propriétés aléatoires hors de la boîte et vous pouvez même ajouter des contraintes aux données aléatoires générées.


0 commentaires

1
votes

Jetez un coup d'œil à Automoq et voir si cela fait ce que vous voulez.


0 commentaires

6
votes

J'espère que cela aide:

int numberOfElements = 10;
var mock = Mock.Of<ICalendar>(x =>
           x.GetSchedules() == Enumerable.Repeat(Mock.Of<ISchedule>(), numberOfElements).ToList());


1 commentaires

Oui, c'est le genre de résultat que j'attends. Mais je veux que cet objet soit "rempli" avec des propriétés aléatoires un peu comme MS PEX. Enfin, je pense que c'est hors de portée du cadre moqueur