Nunit: Ein leeres Ergebnis vom `TestCaseSource`-Generator sollte den Test nicht bestehen

Erstellt am 3. Juni 2020  ·  3Kommentare  ·  Quelle: nunit/nunit

Bei Verwendung [TestCaseSource(nameof(GeneratorMethod))] wäre es sinnvoll, den Test nicht bestehen zu lassen (oder als übersprungen zu markieren), wenn der Generator keine Eingaben erzeugt. Zeigen Sie den Test zumindest nicht als bestanden an :/

Hilfreichster Kommentar

Einige Punkte zu beachten...

  1. Es kann mehrere Quellen geben, daher müssen wir uns darüber im Klaren sein, ob sich die Diskussion auf __jede__ Quelle oder auf das Gesamtergebnis aller Quellen bezieht.

  2. Quellen generieren Tests, nicht nur Daten. Wenn keine Tests generiert werden, kann nichts fehlschlagen oder übersprungen werden. In der fernen Vergangenheit (V2) haben wir einen gefälschten Fehlertest generiert, der sowohl im Code chaotisch als auch für die Benutzer verwirrend war.

  3. Eine Testmethode ohne Fälle ist ein bisschen wie eine Methode ohne Code. Auch wie eine Vorrichtung ohne Tests. Wir betrachten diejenigen, die bestanden haben.

  4. Wenn Sie Ihren Test eine Theorie nennen, erhalten Sie einen Fehler, wenn es keinen vorübergehenden Fall gibt.

Ich würde dafür stimmen, das aktuelle Verhalten zu verlassen, aber dem Benutzer eine Möglichkeit zu geben, eine Warnmeldung anzufordern, wenn keine Fälle generiert werden.

Alle 3 Kommentare

Wenn der Speicher dient, funktioniert es aufgrund eines Fehlerberichts vor einigen Jahren, der uns davon überzeugt hat, dass es in diesem Fall passieren sollte.

😢

Ich habe gerade einen Test mit (derzeit) einem Element in der Quelle geschrieben, und da es sich um einen neuen Test in einem TDD-Zyklus handelt, erwartete ich, dass er fehlschlägt, nur um festzustellen, dass er bestanden wurde ... also musste ich meinen fehlerhaften Generator ausfindig machen.

Vielleicht ist das Scheitern ein bisschen zu drakonisch (meine Präferenz, kann aber für den Reporter der vorherigen Ausgabe ärgerlich sein). Wie wäre es, wenn Sie den Test als übersprungen markieren?

Einige Punkte zu beachten...

  1. Es kann mehrere Quellen geben, daher müssen wir uns darüber im Klaren sein, ob sich die Diskussion auf __jede__ Quelle oder auf das Gesamtergebnis aller Quellen bezieht.

  2. Quellen generieren Tests, nicht nur Daten. Wenn keine Tests generiert werden, kann nichts fehlschlagen oder übersprungen werden. In der fernen Vergangenheit (V2) haben wir einen gefälschten Fehlertest generiert, der sowohl im Code chaotisch als auch für die Benutzer verwirrend war.

  3. Eine Testmethode ohne Fälle ist ein bisschen wie eine Methode ohne Code. Auch wie eine Vorrichtung ohne Tests. Wir betrachten diejenigen, die bestanden haben.

  4. Wenn Sie Ihren Test eine Theorie nennen, erhalten Sie einen Fehler, wenn es keinen vorübergehenden Fall gibt.

Ich würde dafür stimmen, das aktuelle Verhalten zu verlassen, aber dem Benutzer eine Möglichkeit zu geben, eine Warnmeldung anzufordern, wenn keine Fälle generiert werden.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen