davispeixoto / laravel-test-generator
Laravel 4 测试生成器
Requires
- illuminate/console: 4.*
- illuminate/filesystem: 4.*
- illuminate/support: 4.*
- symfony/yaml: 2.5.*@dev
Requires (Dev)
- phpunit/phpunit: 4.3.*
README
此 Laravel 4 包提供强大的测试生成器,以加快您的开发过程。
它基于 PHPUnit 框架提供的骨架生成器以及Jeffrey Way的Laravel 4 生成器。
第一个不能完全与所有 Laravel 4 应用程序类兼容。通常您需要向类中添加一些依赖项才能使其工作,即使您的项目使用Composer和PSR-0兼容的自动加载器来解决所有问题。
第二个生成一个非常小的测试类。它没有映射所有类的公开方法,并且保留了一切原样。
此生成器加载目标并使用 PHP 反射功能来逆向工程所有公开方法,并提供一个增强的骨架,包括数据提供者的调用。
安装
首先通过 Composer 安装此包。编辑您的项目 composer.json
文件,以要求 davispeixoto/testingtool
。
"require": {
"laravel/framework": "4.*",
"davispeixoto/laravel-test-generator": "1.0.*"
},
"minimum-stability" : "stable"
然后,在终端中更新 Composer
composer update
此操作完成后,下一步是添加服务提供者。打开 app/config/app.php
,并向提供者数组添加一个新条目。
'Davispeixoto\TestGenerator\TestGeneratorServiceProvider'
这就完成了!您已经准备就绪。从终端运行 artisan
命令以查看新的 tests:generate
命令。
php artisan
用法
当您需要创建一个新的 PHPUnit 测试类时,请使用 tests:generate
。以下是一个示例
php artisan controller:make UserController php artisan tests:generate UserController
这将生成一个资源控制器和一个测试类 app/tests/UserControllerTest.php
,如下所示
<?php class UserControllerTest extends TestCase { /** * Tests UserController::index */ public function testindex() { //@TODO implement testindex body } /** * Tests UserController::create */ public function testcreate() { //@TODO implement testcreate body } /** * Tests UserController::store */ public function teststore() { //@TODO implement teststore body } /** * Tests UserController::show * * @dataProvider providershow */ public function testshow($id) { //@TODO implement testshow body } /** * Tests UserController::edit * * @dataProvider provideredit */ public function testedit($id) { //@TODO implement testedit body } /** * Tests UserController::update * * @dataProvider providerupdate */ public function testupdate($id) { //@TODO implement testupdate body } /** * Tests UserController::destroy * * @dataProvider providerdestroy */ public function testdestroy($id) { //@TODO implement testdestroy body } /** * Data provider function for UserController::show */ public function providershow() { return $this->dataProvider('UserController.show.csv'); } /** * Data provider function for UserController::edit */ public function provideredit() { return $this->dataProvider('UserController.edit.csv'); } /** * Data provider function for UserController::update */ public function providerupdate() { return $this->dataProvider('UserController.update.csv'); } /** * Data provider function for UserController::destroy */ public function providerdestroy() { return $this->dataProvider('UserController.destroy.csv'); } } ?>
为了全面了解用法,我建议首先阅读文章在 Laravel 中测试像老板一样。在 Laravel 4 核心TestCase类中需要进行一些性能调整。
此外,为了添加数据提供者功能,请将以下内容添加到您的 Laravel composer.json 中
"require": {
"laravel/framework": "4.1.*",
"davispeixoto/testingtool": "dev-master",
"keboola/csv" : "dev-master"
},
"minimum-stability" : "dev"
然后,在终端中更新 Composer
composer update
最后,让 TestCase 类如下所示
<?php class TestCase extends Illuminate\Foundation\Testing\TestCase { /** * Default preparation for each test */ public function setUp() { parent::setUp(); $this->prepareForTests(); } /** * Creates the application. * * @return \Symfony\Component\HttpKernel\HttpKernelInterface */ public function createApplication() { $unitTesting = true; $testEnvironment = 'testing'; return require __DIR__.'/../../bootstrap/start.php'; } /** * Migrates the database. * This will cause the tests to run quickly. */ private function prepareForTests() { Artisan::call('migrate'); } /** * dataProviders Factory * dataProvider Short Description * * @param string $fileName * @return \Keboola\Csv\CsvFile */ public function dataProvider($fileName) { return new Keboola\Csv\CsvFile(__DIR__.'/data/'.$fileName); } } ?>
通过这些小小的改动,您可以真正加快您的 Laravel 应用程序的测试过程。
许可证
此测试生成器是开源软件,许可协议为MIT 许可证
版本控制
本项目遵循语义版本控制