こんにちは。
BehatというBDD(振る舞い駆動開発)フレームワークを使ってみました。
テストシナリオをコンテキスト(文脈)と呼ばれる自然言語に近い形で記述することができ、分かりやすいテストシナリオを書くことができます。
便利ですね。
Behatを使う上でわからないことがあったので調べたことの自分なりのまとめです。
またほとんどを @naname さんに教えてもらいました。ありがとうございます!
目次
Behatを取り巻く環境
Behatを実際に使ってみよう!と思ったのですが、思った以上に知らないことが盛り沢山で感覚がつかめませんでした。
Behatは既存のパッケージなどをうまく組み合わせることでBDDのフレームワークとして動作しています。
まずは実際にBehatを動かすために必要なパッケージ群について一覧にしてみます。
パッケージ | 概要 |
---|---|
Behat | Behat自身。PHPで記述されている。 |
Mink | |
Gherkin | ガーキン。Behatのコンテキストを記述するための構文。 |
それぞれを見ていきます。
Behat
Behat本体ですね。他のパッケージを操りながらBDDを実現しています。
本体はPHPで記述されています。
Mink
Gharkin
ガーキンと読みます。
意味は「ピクルス」です。
(実際に「ピクルス」は瓜科の野菜をピクルス液に付けられたもの全般を指していて、日本で言うピクルスはこのガーキンをピクルス液に付けたものを指しています)
(日本人だと外国人の方が「白菜」のことを「漬け物」と呼んでいる、という感じかなと思いました。)
Gharkinはcucumber(キューカンバー、きゅうり)というBDDテストフレームワークの言語です。
この言語はcucumberパッケージのWikiに記載されています。
実際には
Feature: Some terse yet descriptive text of what is desired
Textual description of the business value of this feature
Business rules that govern the scope of the feature
Any additional information that will make the feature easier to understand
Scenario: Some determinable business situation
Given some precondition
And some other precondition
When some action by the actor
And some other action
And yet another action
Then some testable outcome is achieved
And something else we can check happens too
Scenario: A different situation
...