0

より柔軟なシナリオを構築できるメカニズムを探しています。

たとえば、データベース内のレコードの存在をテストする次の 2 つの非常によく似たシナリオの場合:

Scenario Outline: Testing query with 1 attribute with these 2 record in and another 2 out of result
  Given I'm connected to <db> database
  When I select <query> from database
  Then Result should contain fields:
    | <row>  |
    | <yes1> |
    | <yes2> |
  And Result should not contain fields:
    | <row> |
    | <no1> |
    | <no2> |

  Examples:
    | db | row   | yes1 | yes2 | no1  | no2  | query                                                            |
    | 1  | model | 1013 | 1006 | 1012 | 1007 | "SELECT model FROM pc WHERE speed >= 3.0;"                       |
    | 1  | maker | E    | A    | C    | H    | "SELECT maker FROM product NATURAL JOIN laptop WHERE hd >= 100;" |

Scenario Outline: Testing query with 2 attributes with these 2 record in and another 2 out of result
  Given I'm connected to <db> database
  When I select <query> from database
  Then Result should contain fields:
    | <rowA>  | <rowB>  |
    | <yes1A> | <yes1B> |
    | <yes2A> | <yes2B> |
  And Result should not contain fields:
    | <rowA> | <rowB> |
    | <no1A> | <no1B> |
    | <no2A> | <no2B> |
  Examples:
    | db | rowA  | rowB    | yes1A  | yes1B | yes2A | yes2B | no1A    | no1B | no2A | no2B | query                              |
    | 1  | model | price   | 1004   | 649   | 2007  | 1429  | 2004    | 1150 | 3007 | 200  | "SELECT model,price FROM product"  |
    | 2  | name  | country | Yamato | Japan | North | USA   | Repulse | Brit | Cal  | USA  | "SELECT name, country FROM clases" |

一般的な数の属性で1つのシナリオを記述できるようにしたいと考えています。テストされた行の数も決定されない場合は素晴らしいでしょう。

私の夢は、一般的なシナリオを 1 つだけ書くことです。

Testing query with N attribute with these M record in and another L out of result

Gherkinでこれを行う方法は? どんなハックでも可能ですか?

4

2 に答える 2

5

簡単に言えば、いいえ、Gherkin は柔軟性に関するものではなく、Gherkin は具体的な例に関するものです。具体的な例は、フレキシブル以外のすべてです。

長い答えは次のとおりです。

テスト ツールとしての Gherkin の使用法について説明しています。ただし、Gherkin の目的はテストではありません。Gherkin の目的は、開発者と特定の動作を必要とする利害関係者との間のコミュニケーションを促進することです。

何かをテストしたい場合は、必要なものを正確にサポートする他のツールがあります。どのテスト フレームワークも使用できます。私は主に Java を使用しているため、個人的には JUnit を選択します。

ツールを決定するためのリトマス試験紙は、誰がこれを理解できなければならないのでしょうか?

答えが非技術者である場合、おそらく非常に具体的な例で Gherkin を使用するでしょう。具体的な例は、データベース内のものを比較していない可能性が最も高いです。具体的な例は、システムの外部の観察可能な動作を説明する傾向があります。

答えが開発者であれば、おそらくプログラミング言語にアクセスできるテスト フレームワークを使用するでしょう。これにより、必要な柔軟性が得られます。

あなたの場合、プログラミング言語を求めています。あなたの場合、Gherkin と Cucumber は適切なツールではありません。

于 2016-12-03T18:47:00.550 に答える