Autofixture: Sortierte Listen füllen

Erstellt am 18. Mai 2016  ·  7Kommentare  ·  Quelle: AutoFixture/AutoFixture

Wenn Sie AutoFixture nach einem Wörterbuch fragen, wird ein nicht leerer Wert bereitgestellt:

``` C#
var Fixture = new Fixture();
var aktuell = Fixture.Create>();
Assert.NotEmpty(tatsächlich); // Gelingt es

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

Da AutoFixture bereits nicht leere Wörterbücher bereitstellen kann und eine der Konstruktorüberladungen für SortedList<TKey, TValue> ein Wörterbuch benötigt, sollte es ziemlich einfach sein, ein _relay_ von SortedList<TKey, TValue> zu IDictionary<TKey, TValue> hinzuzufügen.

Die Implementierung könnte zum Beispiel ein neues ISpecimenBuilder , das Anfragen für beliebige SortedList<TKey, TValue> indem IDictionary<TKey, TValue> aus context und dann die entsprechende Konstruktorüberladung mit aufgerufen wird der zurückgegebene Wert.

Eine andere Implementierungsmöglichkeit besteht darin, die Art und Weise, wie konkrete Wörterbücher bereits gefüllt sind, nachzuahmen. Sehen Sie sich die Kombination von DictionaryFiller und DictionarySpecification in der Klasse Fixture an.

enhancement good first issue

Hilfreichster Kommentar

@sbrockway anzukündigen, dass Sie es

Alle 7 Kommentare

Dieses Problem wurde durch diese Stack Overflow-Frage ausgelöst .

Siehe auch #623 und #624.

@ploeh Ich würde gerne

@sbrockway anzukündigen, dass Sie es

@sbrockway , @adamchester hat recht: Die Ankündigung reicht normalerweise aus. AutoFixture ist ein mäßig erfolgreiches Open-Source-Projekt, daher gibt es ständig Beiträge, aber ich glaube nicht, dass ich jemals einen Fall gesehen habe, in dem mehrere Mitwirkende um die gleiche Funktion konkurrieren :smile:

Andere, populärere Projekte können die Dinge anders machen, also hast du das Richtige getan, indem du :+1:

Wenn du Hilfe bei irgendetwas brauchst, frag bitte :smile:

Ich habe Probleme beim Erlernen der Verwendung von GitHub. Entschuldigung für den Pull-Request gestern, ich habe versucht, meinen Fork neu zu basieren, und er hat falsch eingeschätzt, in welche Richtung sich der Pull-Request bewegt. Ich habe es herausgefunden und mein Repo auf den neuesten Stand gebracht.
Ich stecke fest, wie ich mein letztes Commit in mein Repository zurücksetzen / rückgängig machen kann, damit ich die gelöschte Datei zurückbekommen kann, um den von Ihnen vorgeschlagenen Weg zu gehen. Wenn Sie dazu Hinweise haben, wäre es hilfreich.

Ich weiß nicht, wie dein Repo aussieht. Obwohl ich mir Ihre Gabel ansehen könnte, kann ich nicht sehen, wie sie auf Ihrem lokalen Computer aussieht, daher ist es schwierig für mich, konkrete Ratschläge zu geben.

Wenn Sie sich mit Git hoffnungslos verirren, ist es oft der einfachste Ausweg, mit einem neuen Branch von vorne zu beginnen. Dadurch wird sichergestellt, dass der ursprüngliche Zweig intakt bleibt. Das ist wichtig, denn ich höre oft, dass Leute mit Git in ihrer Verzweiflung versuchen, einen Befehl auszuführen, den sie nicht ganz verstehen, und dann ihre Arbeit löschen - für immer!

Der beste Rat, den ich in Bezug auf Git geben kann, ist, sich Zeit zu nehmen und nur Dinge zu tun, die du vollständig verstehst. In den seltenen Fällen, in denen Sie etwas versuchen möchten, das Sie nicht vollständig verstehen, tun Sie sich zumindest den Gefallen, eine Kopie Ihres Projektarchivs woanders zu erstellen. Das Schöne an Git ist, dass es vollständig dateibasiert ist, sodass ein (temporäres) „Backup“ so einfach sein kann wie das Kopieren des Repository-Ordners auf Ihren Desktop.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen