Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Code retreat Codeception


Published on

Presentation of Codeception in Japanese and English

Published in: Software
  • Be the first to comment

  • Be the first to like this

Code retreat Codeception

  1. 1. Text クックビズ勉強会 (TDD)—>Test Driven Development > CodeCeption
  2. 2. CodeCeption Test Framework Acceptance Tests Functional Tests Unit Tests 一番簡単 Powered by PHPUnit -> standard Yii2 modules Selenium2 やPhantomJSと使える
  3. 3. 例 <?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')); ?>
  4. 4. Different tests type Acceptance Tests Functional Tests Unit Tests Yii2 BackendFrontend Browser Selenium PhantomJS HTML HTML $_GET,$_POST, $_REQUEST Yii2 Module Backend User Scenario Developer Scenario Function Testing
  5. 5. Acceptance Tests Enable to do request and interact with the DOM Use a fake browser to perform the queries Can click and fill forms Can be plugged with Selenium/PhantomJS to interact with JavaScript and screenshots
  6. 6. Functional Tests Same as Acceptance test but does not use a browser engine Can be plugged with the framework to access internal functions and properties (Models, validation) Use $_REQUEST, $_POST and $_GET Faster but less interaction
  7. 7. Unit Tests Used to test functions Difficult to use in MVC Can be plugged with the framework to access internal functions and properties (Models, Validation) 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'])); }
  8. 8. インストール Mac OSX: brew update && brew install codeception Linux: wget . php codecept.phar bootstrap Windows: php composer.phar global require “codeception/codeception:*” Composer/ PhpStorm: php composer.phar require “codeception/codeception:*”
  9. 9. Getting ready BootStrap >codecept bootstrap >codecept generate:cept acceptance Validation Edit the configuration file : tests/acceptance.suite.yml class_name: AcceptanceTester modules: enabled: - PhpBrowser - AcceptanceHelper config: PhpBrowser: url: ''
  10. 10. Let’s get the party started >codecept run >codecept run —debug Bonus >codecept generate:scenarios acceptance //English version >codecept console acceptance //Interactive console >codecept run —debug —env test
  11. 11. References Installation : Acceptance Tests : AcceptanceTests Yii2 module : WebDriver : WebDriver Yii2 Database Faker : c4d39cc77a71067ed658