Gibt es eine Möglichkeit in AutoFixture, so dass fixture.Create<string>()
das gleiche Ergebnis liefert? D. h., Kann ich die Vorrichtung mit einem Samen initialisieren?Kann ich Zufallswerte in AutoFixture unter Verwendung eines Seeds neu generieren?
aktualisieren
genauer zu sein, ich bin auf der Suche nach einem Zufallswertgenerator, die mit einem zufälligen Samen initialisiert wird, die auch, wenn ein Test ausgegeben wird, ausfällt. Somit kann ich den Samen für diesen bestimmten Testlauf nehmen und den Test mit dem fixierten Samen erneut ausführen. Der Seed sollte für alle Instanzen unabhängig von ihren Typen gelten. Ich denke, dies ist der beste Weg, um zufällige Werte in Tests zu verwenden, weil es eine große Abdeckung hat und auch reproduzierbar ist.
AutoFixture verfügt über keine solche Funktion, da kein globales 'Random'-Objekt zum Generieren von Werten verwendet wird. In all den Jahren, in denen ich es benutzt habe, habe ich noch nie eine solche Funktion gebraucht. Wenn ein Test fehlschlägt, können Sie sie so schreiben, dass der Testbericht immer enthält, welche Werte verwendet wurden. Wenn Sie beispielsweise * AutoFixture.Xunit * verwenden, geschieht dies automatisch. –
BTW, ich weiß, dass FsCheck * hat eine solche Funktion, aber ich benutze es auch nicht dort ... –
Schreiben Sie alle Testdaten, die an einem bestimmten Test teilgenommen hat skaliert nicht wirklich viel. Unter der Annahme, dass es viele von ihnen gibt, werden Sie mit einer riesigen großen Liste enden. Außerdem müssten Sie im Falle eines fehlgeschlagenen Tests alle Testdaten im Test an die gedruckten Werte anpassen. Noch mühsamer ist, dass Sie in jedem Test benutzerdefinierten Code schreiben müssen, solange die Testdaten nicht in einigen Instanzfeldern enthalten sind. Ich glaube wirklich, dass ein gedruckter Samen der Weg ist, hier zu gehen. – Matthias