Classe avec une collection imbriquée - Comment remplir la classe imbriquée?

StackOverflow https://stackoverflow.com/questions/5458137

  •  12-11-2019
  •  | 
  •  

Question

Je suis un peu confus pour hydrater une classe avec une collection imbriquée d'une autre classe. Je reçois l'erreur:

Autofixture n'a pas pu créer une instance à partir de System.Collections.generic.List`1 [Typename ...]

J'ai essayé d'utiliser Fixture.Register() pour enregistrer le type de remplissage de la classe intérieure. Je pourrais juste faire avec un échantillon qui montre

  1. la classe principale
  2. la collection imbriquée (IList / Ienumerable) d'une autre classe.

    J'ai également remarqué que Register() est marqué comme obsolète, mais il n'y a pas de documentation sur la méthode gen--daCoDiceCode sur CodePlex, donc je suis excité sur la manière dont cela devrait fonctionner.

Était-ce utile?

La solution

Autofixture ne fait aucune présomption sur la manière d'instancer les instances d'interfaces, mais vous pouvez jolieActivez facilement le comportement que vous recherchez - par exemplePour les entiers:

fixture.Register(() => fixture.CreateMany<int>());

dans la prochaine autofixture 2.1 Vous pouvez également simplement Activer les conventions pour différentes collections avec une seule méthode appel:

var fixture = new Fixture().Customize(new MultipleCustomization());

Concernant la dépréciation de la méthode du registre, veuillez noter que ce n'est qu'une surcharge unique de la méthode de registre qui est marquée obsolète.La méthode d'injecte est le remplacement direct - il a la même signature et l'utilisation, juste un nom différent.Toutes les autres surcharges de registre ne sont pas obsolètes et doivent être utilisées comme «documentées».

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top