際際滷

際際滷Share a Scribd company logo
Drupal8 へのスタンドアロンBehat の秘
TomKonda
Behat とは
PHP で嘛するBDD のテストフレ`ムワ`ク
Wordpress、Laravel、Moodleなど光NPHP フレ`ムワ`ク
もちろんDrupal鬚韻盍耡
Drupal鬚Behat のスタンドアロンインスト`ル
Drupal鬚Behat のインスト`ル返
i. Behat 喘のディレクトリの恬撹
ii. Composer を旋喘して、駅勣パッケ`ジの秘
iii. Behat のO協
児云議にDrupal鬚Behat のインスト`ルガイドに冽えばOK
https://behat?drupal?
extension.readthedocs.io/en/3.1/localinstall.html
Behat 喘のディレクトリの恬撹
m輝なディレクトリにBehat のテストを佩うディレクトリの恬撹
cd /path/to/behat/
mkdir behat-tests
cd behat-tests
Composer を旋喘して、駅勣パッケ`ジの秘
Composer で駅勣なモジュ`ルを秘
晩云忽坪なら、いわゆる〆高Wい}〇へのIがベタ`
駅勣なモジュ`ルを峰するため、composer.jsonの恬撹
touch composer.json
駅勣なモジュ`ルの峰
Behat のインスト`ルマニュアルのまま峰
{
"require": {
"drupal/drupal-extension": "~3.0",
"guzzlehttp/guzzle" : "^6.0@dev"
},
"config": {
"bin-dir": "bin/"
}
}
駅勣なモジュ`ルのインスト`ル
Composer でパッケ`ジのインスト`ル
composer install
Behat のO協
Behat のO協を峰するため、behat.ymlの恬撹
touch behat.yml
Behat のO協の峰
巷塀サイトのドキュメントを歌深にDrupalサ`バのアドレスO協
default:
suites:
default:
contexts:
- FeatureContext
- DrupalDrupalExtensionContextDrupalContext
- DrupalDrupalExtensionContextMinkContext
- DrupalDrupalExtensionContextMessageContext
- DrupalDrupalExtensionContextDrushContext
extensions:
BehatMinkExtension:
goutte: ~
selenium2: ~
base_url: http://drupal-server-addr.example.com/
DrupalDrupalExtension:
blackbox: ~
Behat のO協の兜豚晒
參和のコマンドでBehat の兜豚晒のg佩
./bin/behat --init
Behat のインスト`ル撹倦の_J
Behat 喘ディレクトリの和に?FeatureContext.php?があれば撹孔
撹孔していれば協xgみの凋綜匯Eが參和のコマンドで燕幣
./bin/behat -dl --lang en
default | Given I am an anonymous user
default | Given I am not logged in
default | Given I am logged in as a user with the :role role(s)
default | Given I am logged in as a/an :role
default | Given I am logged in as a user with the :role role(s)
default | Given I am logged in as :name
福待
Behat 協xgみの凋綜匯Eについて
?--lang en?で哂Z燕幣がオススメ
?Given?や?When?、?Then?が晩云Z晒されると蛍かりづらい
哂Z參翌だと麿のBehat のテストスクリプトがiみづらい
Behat のテストスクリプトの送れ
# Feature 兆
Feature: Feature Name
# Scenario 兆
Scenario: Scenario Name
# シナリオの嶄附
Given hogehoge
When foobar
Then xyzzy
1. Givenで念戻訳周の峰
箭 GivenI amananonymous user
2. Whenでこれから佩う嘛の峰
箭 I goto"admin/content"
3. Thenで豚棋されるY惚の峰
箭 Thentheresponsestatus codeshouldbe403
Behat テストスクリプトの恬撹
テストスクリプトの恬撹侭
??/path/to/behat/behat-tests/features?に恬撹
徨は?*.feature?
書指は、?test.feature?というファイルで恬撹
touch features/test.feature
恬撹するテストシナリオ
このシナリオに栽崑する、協xgみ凋綜を匯Eから冥す
Feature 兆
テストフィ`チャ`
シナリオ兆
隆ログインで贋壓しないペ`ジを燕幣
念戻訳周
ユ`ザはログインしていない
佩う嘛
foobar にアクセス
豚棋するY惚
HTTP ステ`タスコ`ドが404 になる
恬撹するファイル
# Feature 兆
Feature: テストフィ`チャ`
# Scenario 兆
Scenario: 隆ログインで贋壓しないペ`ジを燕幣
# シナリオの嶄附
Given I am not logged in
When I go to "foobar"
Then the response status code should be 404
テストスクリプトのg佩
テストをg佩するrは、和のコマンドg佩
テストスクリプトがすべてg佩
./bin/behat
Feature: テストフィ`チャ`
Scenario: 砿尖宀でユ`ザ匯Eを燕幣 # features/test
Given I am not logged in # DrupalDrupal
When I go to "foobar" # DrupalDrupal
Then the response status code should be 404 # DrupalDrupal
1 のシナリオ (1 撹孔)
3 のステップ (3 撹孔)
0m1.09s (12.85Mb)
協xされていない凋綜をいてしまった栽
エラ`メッセ`ジで協xの弖紗の碧圭が燕幣
を佩う栽はこれを歌深に弖紗するとベタ`
./bin/behat
Feature: テストフィ`チャ`
Scenario: 隆ログインで贋壓しないペ`ジを燕幣
嶄待
1 のシナリオ (1 隆協x)
3 のステップ (2 撹孔, 1 隆協x)
0m0.69s (12.76Mb)
--- FeatureContext のステップがつかりません。 肝のスニペットで協xでき
/**
* @Then Then the response status code should be :arg1
*/
public function thenTheResponseStatusCodeShouldBe($arg1
{
throw new PendingException();
}
まとめ
Drupal鬚韻Behat のスタンドアロンでの秘圭隈を幣した
gなテストスクリプトの恬撹圭隈を幣した
DrupalでのBDD テストの及匯iを未み竃せるようになった

More Related Content

Drupal 8 へのスタント?アロン behat の秘