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
.
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.
Commentaire le plus utile
@sbrockway annonçant que vous allez