0

私はきゅうりの初心者です。キュウリでコーディングしたい次のシナリオがあります。

Feature: Withdraw Fixed Amount
The "Withdraw Cash" menu contains several fixed amounts to
speed up transactions for users.

Scenario Outline: Withdraw fixed amount
  Given I have <Balance> in my account
  When I choose to withdraw the fixed amount of <Withdrawal>
  Then I should receive <Received> cash
  And the balance of my account should be <Remaining>

Examples:
| Balance | Withdrawal | Received | Remaining |
| $500    | $50        | $50      | $450      |
| $500    | $100       | $100     | $400      |

次のようなファイルからデータ(例:)を読み取りたい:$ 500; $ 50 ;; $ 50; $ 450 $ 500; $ 100; $ 100; $ 400

キュウリの機能ファイルまたはステップ定義からデータを読み取ることができるかどうかわかりません。誰かがこれにいくつかの光を当ててくれませんか?どうもありがとう!

4

2 に答える 2

1

いいえ、Cucumber でシナリオを「生成」することはできません。サンプル テーブルの各行は個別のシナリオとして実行され、Cucumber はどのシナリオが実行されるかを事前に認識している必要があります。

とはいえ、2つの可能性があり、どちらも魅力的ではないと考えています。

  • シナリオ全体を単一のステップ定義でコードに記述します。例:

    Scenario: Withdraw fixed amount
      Given withdrawing should work correctly
    
    #steps.rb
    Given /^withdrawing should work correctly$/ do
      # Read values from file
      # For each row in the file, do everything the scenario would do
    end
    

    これは機能しますが、Gherkin 機能を介してシステムの動作について何も明らかにしないという重大な欠点があります。

  • 機能ファイルをコード生成します。ERB などのテンプレート言語を使用して機能ファイルを変換し、Cucumber を実行する前に発生するタスクとして、必要な例の行を挿入します。効果的ですが、多くの複雑さが犠牲になります

どちらの場合でも、機能ファイルから番号を削除すると、ドキュメントの中心的なソースとしての機能がすぐに無効になります。読者は、システムの実際の動作を理解するために「番号」ファイルを参照する必要があります。

于 2012-12-10T23:49:43.447 に答える
0

あなたが要求したことはやり過ぎです。例は、明確な形式で考えられるケースを特定するのに役立ちますが、大量のデータを処理するためのものではありません。

例の各行は意味があるはずです。そうしないと、リソースが無駄になります。

例えば。$100 の残高がある場合、$20 を引き出すと $80 が残るはずです。ただし、20 ドルはハードコードされた数字である可能性があるため、それを確認するには、もう 1 つのケース、たとえば 30 ドルを引き出す必要があります。

ATM システムでは、1 日あたり 1000 ドルの引き出し制限がある場合があります。したがって、$1200 を要求した場合、システムは $1000 しか返さないはずです。それをテストするには、別の行が必要です。

上記のすべてのケースは意味があります。そして、CSVファイルで処理する必要があるケースはそう多くないと思います。手入力で十分です。

于 2012-12-11T05:18:32.773 に答える