Specflowでは、Scenario Outline/Examples
機能について知っていますが、テストケースで使用する範囲と組み合わせを生成するより洗練された方法があるのでしょうか?Specflowシナリオのサンプル範囲を自動生成する
たとえば、バニラNUnitでは、私はTestCaseSource
またはTheory
を使用して、多数のテストケースをテストに投入できるジェネレータを構築できます。現時点では
private static readonly IEnumerable<int> Numbers = Enumerable.Range(1, 50);
[TestCaseSource(nameof(Numbers))]
public void TestFoo(int number)
{
// Test goes here.
}
、私のテストでは、私が読みにくいことができ、手動で私のExamples
ですべての順列を作成する必要があり、かつ潜在的にエラーが発生しやすいです。
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 |
私は本当に
Examples:
| number| : Range 1 to 20
さらに良いのでしょう行うことができるようにしたいと思い何を、二組のデカルト積、すなわちを作成します。
Examples:
| number1| : Range 1 to 20
| number2| : Range 5 to 10
// i.e. 20 x 5 = 100 combinations of the tuple (number1, number2)
はとにかくありSpecflowでよりエレガントにこれにアプローチするために私は?
あなたはhttps://github.com([CombinatorialAttribute]を使用しようとしました/ nunit/docs/wiki/Combinatorial-Attribute)と[ValueSourceAttribute](https://github.com/nunit/docs/wiki/ValueSource-Attribute)を一緒に使用していますか? –
謝罪 - 私はNUnitにタグを付けてはいけませんでしたが、あなたが正しいです、私はSpecFlow(すなわちCucumber言語)から、同等の方法があるかどうかを調べることを試みています。 (NUnitのTheory、Combinatorial、TestCaseSource(生成されたデータセットを使用)など)。タグを更新しました。 – StuartLC