Autofixture: Remplir les listes triées

Créé le 18 mai 2016  ·  7Commentaires  ·  Source: AutoFixture/AutoFixture

Lorsque vous demandez un dictionnaire à AutoFixture, il fournit une valeur non vide :

``` C#
var fixture = new Fixture();
var réel = luminaire.Créer>();
Assert.NotEmpty(réel); // Réussi

When you request a sorted list, on the other hand, the returned list is empty. This test fails its assertion:

``` C#
var fixture = new Fixture();
var actual = fixture.Create<SortedList<int, string>>();
Assert.NotEmpty(actual); // Fails

Étant donné qu'AutoFixture peut déjà fournir des dictionnaires non vides et que l'une des surcharges de constructeur pour SortedList<TKey, TValue> prend un dictionnaire, il devrait être assez facile d'ajouter un _relay_ de SortedList<TKey, TValue> à IDictionary<TKey, TValue> .

L'implémentation pourrait par exemple être un nouveau ISpecimenBuilder qui gère les requêtes pour tout SortedList<TKey, TValue> en résolvant IDictionary<TKey, TValue> partir du context , puis en appelant la surcharge de constructeur appropriée avec la valeur retournée.

Une autre option d'implémentation consiste à imiter la façon dont les dictionnaires concrets sont déjà remplis. Voyez la combinaison de DictionaryFiller et DictionarySpecification dans la classe Fixture .

enhancement good first issue

Commentaire le plus utile

@sbrockway annonçant que vous allez

Tous les 7 commentaires

Ce problème a été provoqué par cette question Stack Overflow .

Voir aussi #623 et #624.

@ploeh J'aimerais

@sbrockway annonçant que vous allez

@sbrockway , @adamchester a raison : faire l'annonce suffit généralement. AutoFixture est un projet open source modérément réussi, il voit donc un filet constant de contributions, mais je ne pense pas avoir jamais vu un cas où plusieurs contributeurs se font concurrence pour faire la même fonctionnalité :smile:

D'autres projets plus populaires peuvent faire les choses différemment, vous avez donc fait ce qu'il fallait en demandant :+1 :

Si vous avez besoin d'aide pour quoi que ce soit, n'hésitez pas à demander :sourire:

J'ai du mal à apprendre à utiliser GitHub. Toutes mes excuses pour la pull request d'hier, j'essayais de re-base mon fork et il a mal deviné dans quelle direction la pull request se déplaçait. J'ai compris et j'ai mis mon repo à jour.
Je ne sais pas comment annuler/annuler mon dernier commit dans mon référentiel afin que je puisse récupérer le fichier que j'ai supprimé pour suivre la route que vous avez suggérée. Si vous avez des indications là-dessus, ce serait utile.

Je ne sais pas à quoi ressemble votre dépôt. Bien que je puisse regarder votre fork, je ne vois pas à quoi cela ressemble sur votre machine locale, il m'est donc difficile de donner des conseils concrets.

Souvent, avec Git, si vous êtes désespérément perdu, le moyen le plus simple peut être de recommencer avec une nouvelle branche. Cela garantit que la branche d'origine reste intacte. C'est important, car ce que j'entends souvent dire que les gens font avec Git, c'est qu'en désespoir de cause, ils essaient d'exécuter une commande qu'ils ne comprennent pas entièrement, et ils finissent par supprimer leur travail - pour de bon !

Le meilleur conseil que je puisse donner concernant Git est de prendre votre temps et de ne faire que des choses que vous comprenez parfaitement. Dans les rares cas où vous voudriez essayer quelque chose que vous ne comprenez pas entièrement, faites-vous au moins la faveur de créer une copie de votre référentiel ailleurs. La beauté de Git est qu'il est entièrement basé sur des fichiers, donc une "sauvegarde" (temporaire) peut être aussi simple que de copier le dossier du référentiel sur votre bureau.

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

Ephasme picture Ephasme  ·  3Commentaires

tiesmaster picture tiesmaster  ·  7Commentaires

joelleortiz picture joelleortiz  ·  4Commentaires

ploeh picture ploeh  ·  3Commentaires

zvirja picture zvirja  ·  8Commentaires