J'utilise nBuilder pour remplir un graphique d'objet, mais il ne remplit que les types de valeur. Je veux qu'il remplisse les types de référence (objets connexes).nBuilder ne remplit que les types de valeur
Répondre
NBuilder ne prend pas en charge le remplissage automatique des types de référence à ce moment.
Toutefois, il est possible de faire ce que vous voulez en utilisant un générateur pour créer chaque type de référence.
Au moment où vous faites probablement ceci:
var person = Builder<Person>
.CreateNew()
.Build();
Assert.That(person.Name, Is.EqualTo("Name1"));
Assert.That(person.Address, Is.Null);
Qu'est-ce que vous voulez faire est la suivante:
var address = Builder<Address>
.CreateNew()
.Build();
var person2 = Builder<Person>
.CreateNew()
.With(x => x.Address = address)
.Build();
Assert.That(person2.Name, Is.EqualTo("Name1"));
Assert.That(person2.Address, Is.Not.Null);
Assert.That(person2.Address.Street, Is.EqualTo("Street1"));
Assert.That(person2.Address.Zipcode, Is.EqualTo("Zipcode1"));
Une limitation que j'ai trouvé avec NBuilder est que les données qu'il génère pour chaînes de cette manière est qu'il est basé sur les noms de propriété par exemple Name1, Street1, Zipcode1 comme vous le voyez ci-dessus. Je me suis retrouvé en utilisant .Phrase(), mais il n'a pas généré de données aléatoires sensibles et des éléments comme les e-mails ont dû être assemblés.
Vous pouvez télécharger Faker.Net via le nuget link here or use Visual Studio et le faire créer des données fantaisie dans le cadre de votre commande de construction. Vous pouvez ensuite l'utiliser pour créer vos objets Person Mock (en utilisant à nouveau Faker/NBuilder).
var addresses = Builder<Address>.CreateListOfSize(20)
.All()
.With(c => c.Street = Faker.StreetName().First())
.With(c => c.State = Faker.UsState().First())
.With(c => c.ZipCode = Faker.ZipCode().First())
.Build();
This blog post détails d'autres exemples.
- 1. AutoFixture vs NBuilder
- 2. XmlSerializer ne remplit pas les sous-éléments
- 3. jqGrid ne remplit pas les données
- 4. Le dégradé ne remplit que la moitié de la cellule
- 5. La valeur SQL ne remplit pas le contrôle ASP DropDownList
- 6. SPWorkflowTaskProperties.ExtendedProperties ne remplit pas les champs de ma tâche
- 7. VB.NET pointeur sur les types de valeur
- 8. types de valeur .net
- 9. Est-ce que les variables nulles C# fonctionnent toujours en tant que types de valeur?
- 10. Pourquoi link_to ne remplit-il pas correctement les params?
- 11. L'adhésion ASP.NET ne remplit pas les nouveaux utilisateurs
- 12. SQLiteDataAdapter ne remplit pas spécifié DataTable
- 13. Textbox.text ne se remplit pas, C#
- 14. Le tableau JSON ne se remplit pas
- 15. C# == est différent dans les types de valeur et les types de référence?
- 16. ComboBox ne se remplit pas correctement
- 17. Pourquoi l'image ne remplit pas la largeur
- 18. vim: je voudrais que les paramètres ne soient activés que pour certains types de fichiers
- 19. Formulaire HTML ne remplit pas à l'aide de JQuery
- 20. Comment les types de valeur sont implémentés dans .NET
- 21. Eclipse ne remplit plus mes javadocs avec les paramètres/les balises de retour
- 22. JAXB: Unmarshalling ne remplit pas toujours certaines classes?
- 23. Quelle est la raison pour laquelle tous les types de valeur ne peuvent pas être validés?
- 24. BlackBerry web app - 100% de largeur ne remplit pas l'écran
- 25. Object Méthodes d'extension sur les types de valeur
- 26. relation de clé étrangère ne remplit pas dans Django admin
- 27. Scénario de référence et types de valeur
- 28. WPF TreeView ne se remplit jamais à l'aide de HierarchicalDataTemplate
- 29. Java: remplit deux vecteurs et les classe
- 30. Python ne vérifie presque jamais les types
Il est assez ennuyeux, il ne supporte pas ce cas d'utilisation apparemment évident. – Schneider