2011-07-08 2 views
0

私はBDDについて学びたいと思っています。どのように機能するのですか?私はそれを理解しようとしています。BDD:ベイビーステップはどのように機能しますか?

たとえば、次の機能を使用して:

Feature: Months and days to days 
In order to see months and days as days 
As a date conversion fan 
I need a webpage where users can enter days and 
    months and convert them to days. 

Scenario: Convert 12 months and 0 days to days 
Given “12” months And “0” days 
When I click on convert button 
Then I should get: 360 

は私がステップ方法で変換権利を行い、その後、コードをリファクタリングし、クラスでそれらを置くためのコードを作成する必要がありますか、私はクラスから始めるべき?

シンプルに見えますが、私は混乱しています。私は赤ちゃんの歩みを学びたいと思っています。私はそれを壊したくありません。...

ありがとう。

答えて

0

あなたの質問は非常に理解しにくいですが、赤ちゃんのステップでは、おそらく非常に基本的なシナリオから始め、より複雑なものになることを意味します。あなたが記述した物語については、最も基本的な例は0ヶ月と0日を入力し、結果が0日であることを確認することができます。そこから、唯一の日または唯一の月を入力し、最終的に月と日の両方を含む例に行くことができます。

1

私が見ることができる限り、赤ん坊のステップは、小さな変化を段階的に実行する必要があることを意味します。これは、TDDのようになります、新しいテストを記述したコードを記述し、それがない作品をしていることを確認し、それが正常に動作させる、新しいテストを書く...など はあなたの例にようになります:

12ヶ月の変換そして、私は変換ボタンをクリックすると、「12」月と「0」日 考える日に0日が続いて私が取得する必要があります360

は、私が想定し、あなたが得たその最初のものは次のようにクラス名を作成することです」コンバータ "。完了した最初のステップ。次の小さなステップは、メソッドを作成することです。

int convertToDays(int monthCount,int daysCount) 

この手順を実行します。最初にコードの動作を記述し、コーディングを行います。 次のステップは、これらのようなものになります。

  1. int型で正しく動作する方法を記入し、それが文字列の入力値で動作確認し
  2. 値。
  3. 私はそれはあなたを助けることを願っ入力が有効でない場合
  4. は、いくつかのリファクタリング

を行い

  • メイクのユーザーへの通知に入力されたデータの検証を追加します。ありがとう。

  • 0

    あなたが作業しているプラ​​ットフォームやコードがまだないかどうかについては言及していません。ルビー?レール? Java? C#? Python?

    赤ん坊のステップとは、非常に小さなステップで移動し、毎回テストを再実行するということです。 「ベビー・ステップ」は、もともとは単体テスト・レベルで内部赤 - 緑 - リファクタリング・ループに適用することを意図していました。 BDDは受け入れテストレベルで外部ループも追加しました。 BDDスタイルは「外部」を開発することです。

    「コンパイラであなたのステップを導かせてください」というように、しばしば組み合わせて使用​​される別のフレーズがあります。

    あなたはコードがなく、キュウリとRSpecと言っていると仮定すると、説明は他のプラットフォームではあまり変化しません。キュウリでストーリーを実行すると、実装されていない手順があり、 Given When and Thenを実装する方法に関する提案。

    だから、ベイビーステップ。それらのうちの1つを取って、「Given」と言いましょう。そして、提案された実装を使用してください。あなたはRubyでいくつかのステップコードを作成します。このパターンはラインにマッチし、その後は何も呼びません。このコードでは、単純にパラメータを整数に変換することができます(後でコンストラクタを作成するかもしれませんが、今のところ最も簡単なことは可能です)。

    キュウリをもう一度実行すると、2つの不足しているステップについて不満がありますが、記入したステップに関するメッセージが変更されています。

    ここで次のステップを記入してください。キュウリをもう一度実行すると、最後のステップだけが失敗します。しかし、あなたは2番目のステップにいくつかのコンテンツを追加する必要があります。 etc

    このチュートリアルでは、いくつか考えています。

    http://www.slideshare.net/josephwilk/outsidein-development-with-cucumber-and-rspec

    関連する問題