Mark
11 years ago
4 changed files with 198 additions and 0 deletions
@ -0,0 +1,12 @@ |
|||||||
|
Yii Framework 2 Codeception extension Change Log |
||||||
|
================================================ |
||||||
|
|
||||||
|
2.0.0 beta under development |
||||||
|
---------------------------- |
||||||
|
|
||||||
|
- no changes in this release. |
||||||
|
|
||||||
|
2.0.0 alpha, December 1, 2013 |
||||||
|
----------------------------- |
||||||
|
|
||||||
|
- Initial release. |
@ -0,0 +1,32 @@ |
|||||||
|
The Yii framework is free software. It is released under the terms of |
||||||
|
the following BSD License. |
||||||
|
|
||||||
|
Copyright © 2008-2013 by Yii Software LLC (http://www.yiisoft.com) |
||||||
|
All rights reserved. |
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without |
||||||
|
modification, are permitted provided that the following conditions |
||||||
|
are met: |
||||||
|
|
||||||
|
* Redistributions of source code must retain the above copyright |
||||||
|
notice, this list of conditions and the following disclaimer. |
||||||
|
* Redistributions in binary form must reproduce the above copyright |
||||||
|
notice, this list of conditions and the following disclaimer in |
||||||
|
the documentation and/or other materials provided with the |
||||||
|
distribution. |
||||||
|
* Neither the name of Yii Software LLC nor the names of its |
||||||
|
contributors may be used to endorse or promote products derived |
||||||
|
from this software without specific prior written permission. |
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
||||||
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
||||||
|
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS |
||||||
|
FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE |
||||||
|
COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, |
||||||
|
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |
||||||
|
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
||||||
|
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
||||||
|
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
||||||
|
ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
||||||
|
POSSIBILITY OF SUCH DAMAGE. |
@ -0,0 +1,128 @@ |
|||||||
|
Codeception Extension for Yii 2 |
||||||
|
=============================== |
||||||
|
|
||||||
|
This extension provides a `Codeception` mail solution for Yii 2. It includes some classes that are useful |
||||||
|
for unit-testing (```TestCase```) or for codeception page-objects (```BasePage```). |
||||||
|
|
||||||
|
When using codeception page-objects they have some similar code, this code was extracted and put into the ```BasePage``` |
||||||
|
class to reduce code duplication. Simply extend your page object from this class, like it is done in ```yii2-basic``` and |
||||||
|
```yii2-advanced``` boilerplates. |
||||||
|
|
||||||
|
For unit testing there is a ```TestCase``` class which holds some common features like application creation before each test |
||||||
|
and application destroy after each test. You can configure your application by this class. ```TestCase``` is extended from ```PHPUnit_Framework_TestCase``` so all |
||||||
|
methods and assertions are available. |
||||||
|
|
||||||
|
```php |
||||||
|
SomeConsoleTestTest extends yii\codeception\TestCase |
||||||
|
{ |
||||||
|
# by default it is @tests/unit/_bootstrap.php which holds some basic things like: |
||||||
|
# including composer autoload, include BaseYii class. |
||||||
|
public $baseConfig = '@app/config/console.php'; |
||||||
|
|
||||||
|
public $applicationClass = 'yii\console\Application'; |
||||||
|
} |
||||||
|
``` |
||||||
|
Dont forget that you still need to include autoload and BaseYii class, like in the _bootstrap.php file (comments above). |
||||||
|
|
||||||
|
You also can reconfigure some components for tests, for this purpose there is a ```$config``` property in the testcase. |
||||||
|
|
||||||
|
```php |
||||||
|
SomeOtherTest extends yii\codeception\TestCase |
||||||
|
{ |
||||||
|
public $config = [ |
||||||
|
'components' => [ |
||||||
|
'mail' => [ |
||||||
|
'useFileTransport' => true, |
||||||
|
], |
||||||
|
] |
||||||
|
]; |
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
Because of Codeception buffers all output you cant make simple ```var_dump()``` in the TestCase, instead you need to use |
||||||
|
```Codeception\Util\Debug::debug()``` function and then run test with ```--debug``` key, for example: |
||||||
|
|
||||||
|
```php |
||||||
|
|
||||||
|
use \Codeception\Util\Debug; |
||||||
|
|
||||||
|
SomeDebugTest extends yii\codeception\TestCase |
||||||
|
{ |
||||||
|
|
||||||
|
public function testSmth() |
||||||
|
{ |
||||||
|
Debug::debug('some my string); |
||||||
|
Debug::debug($someArray); |
||||||
|
Debug::debug($someObject); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
``` |
||||||
|
|
||||||
|
Then run command ```php codecept.phar run --debug unit/SomeDebugTest``` (Codeception also available through composer) and you will see in output: |
||||||
|
|
||||||
|
```html |
||||||
|
some string |
||||||
|
|
||||||
|
Array |
||||||
|
( |
||||||
|
[0] => 1 |
||||||
|
[1] => 2 |
||||||
|
[2] => 3 |
||||||
|
[3] => 4 |
||||||
|
[4] => 5 |
||||||
|
) |
||||||
|
|
||||||
|
yii\web\User Object |
||||||
|
( |
||||||
|
[identityClass] => app\models\User |
||||||
|
[enableAutoLogin] => |
||||||
|
[loginUrl] => Array |
||||||
|
( |
||||||
|
[0] => site/login |
||||||
|
) |
||||||
|
|
||||||
|
[identityCookie] => Array |
||||||
|
( |
||||||
|
[name] => _identity |
||||||
|
[httpOnly] => 1 |
||||||
|
) |
||||||
|
|
||||||
|
[authTimeout] => |
||||||
|
[autoRenewCookie] => 1 |
||||||
|
[idVar] => __id |
||||||
|
[authTimeoutVar] => __expire |
||||||
|
[returnUrlVar] => __returnUrl |
||||||
|
[_access:yii\web\User:private] => Array |
||||||
|
( |
||||||
|
) |
||||||
|
|
||||||
|
[_identity:yii\web\User:private] => |
||||||
|
[_events:yii\base\Component:private] => |
||||||
|
[_behaviors:yii\base\Component:private] => |
||||||
|
) |
||||||
|
|
||||||
|
``` |
||||||
|
|
||||||
|
|
||||||
|
For further instructions refer to the related section in the Yii Definitive Guide (https://github.com/yiisoft/yii2/blob/master/docs/guide/testing.md). |
||||||
|
|
||||||
|
|
||||||
|
Installation |
||||||
|
------------ |
||||||
|
|
||||||
|
The preferred way to install this extension is through [composer](http://getcomposer.org/download/). |
||||||
|
|
||||||
|
Either run |
||||||
|
|
||||||
|
``` |
||||||
|
php composer.phar require yiisoft/yii2-codeception "*" |
||||||
|
``` |
||||||
|
|
||||||
|
or add |
||||||
|
|
||||||
|
```json |
||||||
|
"yiisoft/yii2-codeception": "*" |
||||||
|
``` |
||||||
|
|
||||||
|
to the require section of your composer.json. |
@ -0,0 +1,26 @@ |
|||||||
|
{ |
||||||
|
"name": "yiisoft/yii2-codeception", |
||||||
|
"description": "The Codeception integration for the Yii framework", |
||||||
|
"keywords": ["yii", "codeception"], |
||||||
|
"type": "yii2-extension", |
||||||
|
"license": "BSD-3-Clause", |
||||||
|
"support": { |
||||||
|
"forum": "http://www.yiiframework.com/forum/", |
||||||
|
"wiki": "http://www.yiiframework.com/wiki/", |
||||||
|
"irc": "irc://irc.freenode.net/yii", |
||||||
|
"source": "https://github.com/yiisoft/yii2" |
||||||
|
}, |
||||||
|
"authors": [ |
||||||
|
{ |
||||||
|
"name": "Mark Jebri", |
||||||
|
"email": "mark.github@yandex.ru" |
||||||
|
} |
||||||
|
], |
||||||
|
"require": { |
||||||
|
"yiisoft/yii2": "*" |
||||||
|
}, |
||||||
|
"autoload": { |
||||||
|
"psr-0": { "yii\\codeception\\": "" } |
||||||
|
}, |
||||||
|
"target-dir": "yii/codeception" |
||||||
|
} |
Loading…
Reference in new issue