blainesch / li3_unit
增加了额外的断言方法以及创建模型、控制器和辅助工具的简单方式。
v1.0.1
2012-11-26 15:33 UTC
This package is not auto-updated.
Last update: 2024-09-22 02:21:49 UTC
README
增加了额外的断言方法以及创建模型、控制器和辅助工具的简单方式。
安装
Composer
{ "require": { ... "composer/installers": "*", "blainesch/li3_unit": ">=1.0.0" ... } }
php composer.phar install
子模块
git submodule add git://github.com/blainesch/li3_unit.git libraries/li3_unit
直接克隆
git clone git://github.com/blainesch/li3_unit.git libraries/li3_unit
使用
加载插件
将插件添加到Lithium的自动加载魔法中
在app/config/bootstrap/libraries.php
中添加
<?php Libraries::add('li3_unit'); ?>
额外的断言
目前测试扩展自\lithium\test\Unit,扩展\li3_unit\test\Unit可以访问默认的lithium Unit扩展的新断言方法。要了解所有不同的断言,请访问assertions.md文件。
<?php namespace app\tests\cases; use li3_unit\test\Unit; class SampleTest extends Unit { public function testSomething() { $this->assertCount(3, array('foo', 'bar', 'baz')); } } ?>
调用控制器
而不是扩展内置的Unit类,扩展ControllerUnit。您仍然可以访问所有额外的断言方法和Lithium的内置功能,同时还可以访问一个新的'call'方法。
<?php namespace app\tests\cases\controllers; use li3_unit\test\ControllerUnit; class UsersControllerTest extends ControllerUnit { public $controller = 'app\\controllers\\UsersController'; public function testSomething() { $data = $this->call('profile', array( 'params' => array( 'name' => 'Blaine', ) )); $user = $data['user']; $this->assertEqual('Blaine', $user->username); } } ?>
调用辅助工具
类似于之前,我们将ControllerUnit更改为HelperUnit,并可以访问一个新的方法'create',这将帮助我们创建新的辅助工具以进行测试。
<?php namespace app\tests\cases\extensions\helper; use li3_unit\test\HelperUnit; class ProseTest extends HelperUnit { public $prose; public function setUp() { $this->prose = $this->create('Prose'); } public function testFourEightStarStatement() { $expected = 'Amazing'; $this->assertEqual($expected, $this->prose->starStatement(4.8)); } } ?>
调用模型
您可能更适合使用类似li3_fixtures的库,但对于那些只想有一个包的人来说,这个库可以帮助测试非关系型模型实例方法。
<?php namespace app\tests\cases\models; use li3_unit\test\ModelUnit; class UsersTest extends ModelUnit { public $model = 'app\\models\\Users'; public $defaultData = array( 'id' => '10', 'fname' => 'Blaine', 'lname' => 'Smith', ); public function testName() { $user = $this->create(array( 'fname' => 'Blaine', 'lname' => 'Schmeisser', )); $expected = 'Blaine Schmeisser'; $this->assertEqual($expected, $user->fullName()); } } ?>