Cucumberとの組み合わせテスト

cucumber ruby testing
Cucumberとの組み合わせテスト

2つの異なる変数を持つシナリオの概要があります。 1つの変数には約20の異なる値があり、もう1つの変数には3があります。

すべての組み合わせをテストできるようにする必要があり、それぞれを個別にテストする必要があるため、それぞれを別々のシナリオで必要とします。

現在、私はそれを手で書きます(例では整数ですが、テストではありません):

Scenario Outline: Test my stuff
Given first var is
And second var is
When I do stuff
Then good stuff should happen

Examples:
| var_a | var_b |
| 1     | 1     |
| 1     | 2     |
| 1     | 3     |
| 2     | 1     |
| 2     | 2     |
etc...

*質問:*すべての組み合わせを書き出す必要がない場合、これを実行する方法はありますか? 変数のサイズと内容は後で変更されることになっているため、単一のデータ構造を処理したいと思います。

  5  0


ベストアンサー

Scenario: Test my stuff
Given first var combinations is @var_a_combos
Given second var combinations is @var_b_combos
When I run every combination
Then good stuff should happen
  • 「@var_a_combos」と「@var_b_combos」は、以下を含むEnumerableです
    そのタイプのあらゆる異なる可能性。

  • 「すべての組み合わせを実行するとき」は両方の変数を反復処理します
    すべての組み合わせをテストします。 アサーションを使用する代わりに、エラーと必要なデバッグデータをリストする@results(String)変数を代わりに作成します。

  • 「それから良いことが起こるはず」がコードを実行します
    `@results.should eql “” `は、テストケースが成功したか失敗したかを判断します。

結果を保持するために(アサーションの代わりに)String変数を使用する目的は、最初の障害が発生したときにテストが停止しないようにすることです。

*私はこのソリューションが本当に好きではありません*が、これまで考え出した中で最高です。 他の答えはありがたいですが、このテストは本当に統合テストであり、すべての組み合わせをテストする必要があります。

誰かがさらに回答を投稿した場合、私はそれらを確認し、より良いと思う場合は受け入れられた回答を変更します。

1


テストはUIウィジェット用であり、ユニットレベルでテストしようとしているため、QUnit(または別のjavascriptユニットテストフレームワークですが、これは個人的な好みです)をチェックアウトする必要があります。 キュウリとカピバラによるソートのテスト

0


本当にすべての組み合わせをテストする必要がありますか? 問題の背景を説明していただけますか?

とにかく、すべてを個別のシナリオで実行することに関するクエリについては、例を含むシナリオ概要が必要です。 Cucumberのドキュメントを参照してください。

-1


タイトルとURLをコピーしました