はじめに

前回は、自動販売機を題材にして、BDDを用いたプロセスの「定式化(Formulation)」の部分までを説明しました。

今回は、「自動化(Automation)」の部分を説明します。

5. 自動化

前回の記事の「4. レビュー」まで、自動化については一切考えていませんでした。(BDDは自動化が目的ではないと第4回でお伝えした通りです。)

ここまできて初めて、自動化について考えます。

今回は、前回作成した以下のGherkin記法のシナリオをインプットにして自動化を行います。

Feature: 自動販売機
  Scenario: 飲み物を買うと、飲み物代を引いた金額のお釣りが出る
    Given 自動販売機がある
    When 550 円を入れる
    And 120 円の "コーラ" を選択する
    Then "コーラ" が出てくる
    And 430 円が出てくる

自動化の手順0. BDDのフレームワークを導入する

BDDで行うためのフレームワークを導入します。本記事では、

  • プログラミング言語…Java
  • フレームワーク…Cucumber
  • ビルドツール…Maven

で臨みます。

また、IDEはIntelliJを使用しており、「Cucumber for Java」のプラグインがインストール済みです。記事中に載っている画像は全てIntelliJのスクリーンショットであることをご了承ください。

Cucumberの構造を理解する

Cucumberは以下の構造を作成して動かします。

Gherkin記法のシナリオとテストコードが分かれているのが、CucumberをはじめとしたBDDフレームワークの特徴です。

これにより、ビジネス関係者はGherkin記法のシナリオを見るだけで、どのような振る舞いを定義しているのか理解することができます。その際に、プログラミング特有のスキルは必要ありません。

CucumberのプロジェクトをCloneする

今回は、cucumber-java-skeletonのプロジェクトをCloneします。

Cloneの仕方とCucumberの実行の仕方についてはプロジェクトのReadmeをご覧ください。

テストが実行できることを確認する

GradleもしくはMavenを用いて、プロジェクトのReadmeに書いてある通りにテストを実行します。

例えばMavenの場合、以下のようにテストが実行できればOKです。初期状態ではテストが失敗するようになっています。

IDE上でフィーチャーファイルのテスト実行できることを確認する

GradleもしくはMavenでテスト実行すると、IDEのフィーチャーファイル上でCucumberの実行ができるようになっています。

今回はCloneしたプロジェクトにデフォルトで入っているmaven/src/test/resources/io/cucumber/skeleton/belly.featureのファイルを開いてみましょう。すると、以下の画像のようになっているはずです。

この中で、行番号の1行目もしくは3行目の右側についている三角形2つのアイコンをクリックします。すると、以下のようなウィンドウが出てくるはずです。この中の一番上にある「Run ‘〜〜’」をクリックすると、IDE上でCucumberのテストを実行できます。

実行後、以下の画像のような結果になればOKです。

不要なファイルおよび記述を削除する

実際のプロジェクトを記述する上で以下のファイルは不要なので、削除してください。

  • maven/src/test/resources/io/cucumber/skeleton/belly.feature
  • maven/src/main/java/io/cucumber/skeleton/Belly.java
  • maven/src/test/java/io/cucumber/skeleton/StepDefinitions.java

以上で、Cucumberを用いてBDDの自動化を行う準備ができました。

自動化の手順1. フィーチャーファイルに記載する

新たにフィーチャーファイルを作成し、前回作成した以下のGherkin記法のシナリオを記載します。今回はmaven/src/test/resources/io.cucumber.vendormachine/vendormachine.featureというファイルを作成しました。

Feature: 自動販売機
  Scenario: 飲み物を買うと、飲み物代を引いた金額のお釣りが出る
    Given 自動販売機がある
    When 550 円を入れる
    And 120 円の "コーラ" を選択する
    Then "コーラ" が出てくる
    And 430 円が出てくる

続きを読むにはログインが必要です。
ご利用は無料ですので、ぜひご登録ください。

SHARE

  • facebook
  • twitter

SQRIPTER

風間 裕也(かざま ゆうや):ブロッコリー

B-Testing

記事一覧

電気通信大学大学院修士課程修了。
B-Testingを開業し、「どのようにテストを考えればよいか」を社内外問わずエンジニアに日々お伝えしている。


【社外コミュニティ活動】
・WACATE(ソフトウェアテストをテーマとしたワークショップ)実行委員長
・JaSST Review(ソフトウェアレビューシンポジウム)実行委員長


【翻訳活動】
・Agile Testing Condensed(翻訳)
・A Practical Guide to Testing in DevOps(共訳)
・The BDD Books - Discovery(翻訳)

Sqriptsはシステム開発における品質(Quality)を中心に、エンジニアが”理解しやすい”Scriptに変換して情報発信するメディアです

  • 新規登録/ログイン
  • 株式会社AGEST