More Related Content
Similar to PHP Codeception テスト -- 日本語 (10)
PHP Codeception テスト -- 日本語
- 3. この外国人って誰?
Batard Florent (28 歳)(Shenril)
Twitter: @shenril
Facebook: Florent Btd
セキュリティエンジニア (ハッカー)
フランス人
フランス、スイス、アメリカ、イギリス、日本に住んでた
日本が大好き、特に関西:食べ物、人、空気
日本語はまだ勉強中。。すみません
- 4. この外国人って誰?
Batard Florent (28 歳)(Shenril)
Twitter: @shenril
Facebook: Florent Btd
セキュリティエンジニア (ハッカー)
フランス人
フランス、スイス、アメリカ、イギリス、日本に住んでた
日本が大好き、特に関西:食べ物、人、空気
日本語はまだ勉強中。。すみません
- 5. この外国人って誰?
Batard Florent (28 歳)(Shenril)
Twitter: @shenril
Facebook: Florent Btd
セキュリティエンジニア (ハッカー)
フランス人
フランス、スイス、アメリカ、イギリス、日本に住んでた
日本が大好き、特に関西:食べ物、人、空気
日本語はまだ勉強中。。すみません
- 6. この外国人って誰?
Batard Florent (28 歳)(Shenril)
Twitter: @shenril
Facebook: Florent Btd
セキュリティエンジニア (ハッカー)
フランス人
フランス、スイス、アメリカ、イギリス、日本に住んでた
日本が大好き、特に関西:食べ物、人、空気
日本語はまだ勉強中。。すみません
- 7. この外国人って誰?
Batard Florent (28 歳)(Shenril)
Twitter: @shenril
Facebook: Florent Btd
セキュリティエンジニア (ハッカー)
フランス人
フランス、スイス、アメリカ、イギリス、日本に住んでた
日本が大好き、特に関西:食べ物、人、空気
日本語はまだ勉強中。。すみません
- 8. この外国人って誰?
Batard Florent (28 歳)(Shenril)
Twitter: @shenril
Facebook: Florent Btd
セキュリティエンジニア (ハッカー)
フランス人
フランス、スイス、アメリカ、イギリス、日本に住んでた
日本が大好き、特に関西:食べ物、人、空気
日本語はまだ勉強中。。すみません
- 9. この外国人って誰?
Batard Florent (28 歳)(Shenril)
Twitter: @shenril
Facebook: Florent Btd
セキュリティエンジニア (ハッカー)
フランス人
フランス、スイス、アメリカ、イギリス、日本に住んでた
日本が大好き、特に関西:食べ物、人、空気
日本語はまだ勉強中。。すみません
- 10. この外国人って誰?
Batard Florent (28 歳)(Shenril)
Twitter: @shenril
Facebook: Florent Btd
セキュリティエンジニア (ハッカー)
フランス人
フランス、スイス、アメリカ、イギリス、日本に住んでた
日本が大好き、特に関西:食べ物、人、空気
日本語はまだ勉強中。。すみません
- 22. どんな感じですか?
<?php
$I = new AcceptanceTester($scenario);
$I->wantTo('create wiki page');
$I->amOnPage('/');
$I->click('Pages');
$I->click('New');
$I->see('New Page');
$I->fillField('title', 'Hobbit');
$I->fillField('body', 'By Peter Jackson');
$I->click('Save');
$I->see('page created'); // notice generated
$I->see('Hobbit','h1'); // head of page of is our title
$I->seeInCurrentUrl('pages/hobbit');
$I->seeInDatabase('pages', array('title' => ‘Hobbit'));
?>
- 33. Unit Tests
Functionsのテスト
フレームワークにプラグインすることができ、直接内部関数やプロ
パティにアクセスします (Models, Validation)
一番早い
MVCでやりにくい
人間で読みにくい。。
コードレビューも大変
public function testValidation()
{
$user = User::create();
$user->username = null;
$this->assertFalse($user->validate(['username']));
$user->username = 'toolooooongnaaaaaaameeee';
$this->assertFalse($user->validate(['username']));
$user->username = 'davert';
$this->assertTrue($user->validate(['username']));
}
- 34. インストール
Mac OSX:
brew update && brew install homebrew/php/codeception
Linux:
wget http://codeception.com/codecept.phar .
php codecept.phar bootstrap
Windows:
php composer.phar global require “codeception/codeception:*”
Composer/ PhpStorm:
php composer.phar require “codeception/codeception:*”
- 36. パーティー始めましょう
>codecept run
>codecept run —debug
Bonus
>codecept generate:scenarios acceptance //英語シナリオ
>codecept console acceptance //Interactive console
>codecept run —debug —env test //環境設定も出来るし
- 38. Best practices
1. ローカル/Vagrantでテストして -> テストに合格出来たらGIT PUSH
2. テストサーバーでデプロイして -> もう一回テストをして(環境)
3. テストサーバーでテストに合格出来たら本番に展開します
4. 本番でしないで ! NEVER!!! ダメ!ゼッタイ!
1. 新しいエントリの作成とデータベースの変更をします
2. 本番サーバーの負荷が増えます
3. 本番サーバーをチェックするためにMonitoringは必要
- 39. まとめ
Installation : http://codeception.com/install
Acceptance Tests : http://codeception.com/docs/04-AcceptanceTests
Yii2 module : http://codeception.com/docs/modules/Yii2
WebDriver : http://codeception.com/docs/modules/WebDriver
Yii2 Database Faker : http://qiita.com/tanakahisateru/items/
c4d39cc77a71067ed658
別のツール
PHPUnit Framework(難しい)
phpspec (使用 & Unit Testing)
Pure Selenium/PhantomJS (PHPと統合しにくい)