5. How can I set up other things?
● Selenium tests
● API tests
● Functional tests
● Access to DB for check a state or setup prerequisities
● Data cleanup
● and many, many things...
8. Features
● very fast setup
● Unit (powered by PHPUnit)
● API (REST, SOAP, XML-RPC)
● Functional (Symfony2, Laravel, Yii, Zend)
● Acceptance (PhpBrowser, Selenium)
● Db (Db, Doctrine 1 & 2)
● BDD - style readable tests
● Modules & Addons !!!
9. Very fast setup - installation
$ bin/composer.phar require “codeception/codeception:*”
$ vendor/bin/codeception bootstrap
$ .../codeception generate:cept acceptance Welcome
10. Very fast setup - write a test
// /tests/acceptance/WelcomeCept.php
$I = new AcceptanceTester($scenario);
$I->wantTo('ensure that frontpage works');
$I->amOnPage('/');
$I->see('Home');
11. Very fast setup - configure
// /tests/acceptance.suite.yml
class_name: AcceptanceGuy
modules:
enabled: [PhpBrowser, AcceptanceHelper]
# WebDriver instead of PhpBrowser for Selenium
config:
PhpBrowser:
url: '{YOUR APP'S URL}'
12. Very fast setup - run
$ vendor/bin/codeception run
Suite acceptance started
Trying to ensure that frontpage works (WelcomeCept.php) - Ok
Suite functional started
Suite unit started
Time: 1 second, Memory: 21.00Mb
OK (1 test, 1 assertions)
14. API - test
$I = new ApiTester($scenario);
$I->wantTo('create a user via API');
$I->haveHttpHeader('Content-Type',
'application/json');
$I->sendPOST('/users', ['name' => 'davert']);
$I->seeResponseCodeIs(201);
$I->seeResponseIsJson();
$I->seeResponseContains('{"result":"ok"}');
18. Modules & addons
● PhpBuiltinServer
● Phantoman
● and many others ...
19. FAQ
● how can I setup different URLs for REST?
● can I write OO oriented tests?
● what is interactive console?
● can I use DRY principle in tests (for login)?