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