In Specflow, obwohl ich über die Scenario Outline/Examples
-Funktion weiß, habe ich mich gefragt, ob es eine elegantere Möglichkeit gibt, Bereiche und Kombinationen für Testfälle zu erstellen?Automatisch Bereiche von Beispielen in Specflow-Szenario-Gliederung erstellen
Zum Beispiel, in Vanille NUnit, kann ich eine TestCaseSource
oder Theory
verwenden, um einen Generator zu bauen, den ich in einer großen Anzahl von Testfällen in einen Test einspeisen kann.
private static readonly IEnumerable<int> Numbers = Enumerable.Range(1, 50);
[TestCaseSource(nameof(Numbers))]
public void TestFoo(int number)
{
// Test goes here.
}
Derzeit in meinen Tests, muss ich manuell alle Permutationen in meinem Examples
erstellen, die nur schwer zu lesen und möglicherweise fehleranfällig.
Scenario Outline: Count things
Given I'm playing a game of counting
When I count to <number>
Then the highest number I should have counted to should be <number>
Examples:
| number|
| 1 |
| 2 |
| 3 |
...
| 50 |
Was würde ich wirklich würde in der Lage sein mag
Examples:
| number| : Range 1 to 20
Und noch besser zu tun, erstellen Sie das Kreuzprodukt von zwei Sätzen, das heißt:
Examples:
| number1| : Range 1 to 20
| number2| : Range 5 to 10
// i.e. 20 x 5 = 100 combinations of the tuple (number1, number2)
Gibt es trotzdem dass ich das in Specflow eleganter angehen kann?
Haben Sie versucht, die [CombinatorialAttribute] zu verwenden (https://github.com/nunit/docs/wiki/Combinatorial-Attribut) und das [ValueSourceAttribute] (https://github.com/nunit/docs/wiki/ValueSource-Attribute) zusammen? –
Entschuldigung - Ich hätte NUnit nicht markieren sollen - aber Sie haben recht, ich versuche herauszufinden, ob es einen ähnlichen Weg gibt, von SpecFlow (dh in der Sprache Cucumber) automatisierte datengesteuerte Fähigkeiten des zugrunde liegenden Testframeworks zu nutzen (wie NUnit's Theorie, Combinatorial, TestCaseSource (mit einem generierten Dataset). Ich habe die Tags aktualisiert. – StuartLC