mrtnzlml / testbench
v2.5.0
2017-10-14 13:41 UTC
Requires
- php: >=5.6.0
- kdyby/fake-session: ^2.0
- nette/application: ^2.4 || ^v3.0
- nette/bootstrap: ^2.4 || ^v3.0
- nette/di: ^2.4 || ^v3.0
- nette/safe-stream: ^2.3
- nette/security: ^2.4 || ^v3.0
- nette/tester: ^2.0
- nette/utils: ^2.4 || ^v3.0
Requires (Dev)
- kdyby/doctrine: ^3.1
- kdyby/doctrine-cache: ^2.5
- kdyby/doctrine-dbal-batchimport: dev-master
- kdyby/events: ^3.0
- latte/latte: ^2.4
- nette/database: ^2.4 || ^v3.0
- nette/forms: ^2.4 || ^v3.0
- nette/robot-loader: ^2.4 || ^v3.0
- tracy/tracy: ^2.4
- zenify/doctrine-migrations: ^2.3
Suggests
- kdyby/doctrine: Allows enhanced database tests using Doctrine
- kdyby/doctrine-dbal-batchimport: Allows SQL scripts import for Doctrine (required with kdyby/doctrine)
- nette/database: Allows enhanced database tests using Nette\Database
- zenify/doctrine-migrations: Migrate database to the fresh state
README
目前我没有时间、精力和金钱来维护这个项目。但如果你依赖于这个项目,并且想要成为赞助者或进一步开发它,请不要犹豫,与我联系。否则,我无法保证这个存储库的美好未来... :)
已测试与 PHP 5.6 和 7.0 的兼容性。请阅读 此维基百科。
受到以下 GitHub 项目的极大启发
以及文章
- Bootstrap your integration testing database (Jiří Pudil)
- Testování presenterů v Nette (本人)
为 Nette 框架项目提供简单测试平台
尽可能简单地将集成测试编写。此项目帮助您快速编写测试。DRY!此项目的主要目标是使测试对每个人都非常简单,并帮助克服困难的开端。
您可以在本说明书中找到一些示例,或查看此项目中的 tests
文件夹。
安装
$ composer require mrtnzlml/testbench
Testbench 本身不需要数据库。但如果你想使用 Testbench\TDoctrine
或 Testbench\TNetteDatabase
特性,你必须为第一次连接设置数据库。你应该使用标准的数据库配置——没有什么特别的。你可以在 tests/tests.local.neon.dist
文件中看到示例。空数据库对 Testbench 来说已经足够好了。支持的数据库有
- Doctrine 2
- Nette\Database
对于其他数据库,请发送 PR 或打开问题。
最小化代码
首先你需要经典的引导文件(只是一个例子,DIY)
<?php require __DIR__ . '/../vendor/autoload.php'; Testbench\Bootstrap::setup(__DIR__ . '/_temp', function (\Nette\Configurator $configurator) { $configurator->createRobotLoader()->addDirectory([ __DIR__ . '/../app', ])->register(); $configurator->addParameters([ 'appDir' => __DIR__ . '/../app', ]); $configurator->addConfig(__DIR__ . '/../app/config/config.neon'); $configurator->addConfig(__DIR__ . '/tests.neon'); });
重要的是,我们在这里不创建依赖注入容器。如果你不想使用机器人加载器,你可以使用 composer 的 autoload。你还应该创建配置文件,例如 tests.neon
。此文件目前仅在数据库测试时需要。在此文件中,您应该在测试之前配置您的项目。
testbench: sqls: #what should be loaded after empty database creation - %appDir%/../sqls/1.sql - %appDir%/../sqls/2.sql
然后你就可以开始了
<?php //HomepagePresenterTest.phpt require __DIR__ . '/../bootstrap.php'; /** * @testCase */ class HomepagePresenterTest extends \Tester\TestCase { use \Testbench\TPresenter; public function testRenderDefault() { $this->checkAction('Homepage:default'); } public function testRenderDefaultModule() { $this->checkAction('Module:Homepage:default'); } } (new HomepagePresenterTest())->run();
你可以轻松编写测试,覆盖 UI\Controls、受限制的区域、表单、信号、重定向等...
请阅读 这篇文章。
试试看!
看看这个项目中的测试。你会看到如何正确使用它。在 tests
文件夹或维基百科中都有示例。学习如何使用这些特性。