nexendrie / testbench
Nette Framework应用的简单集成测试工具
v2.7.1
2020-11-03 18:07 UTC
Requires
- php: >=7.4.0
- kdyby/fake-session: ^2.1 || ^3.0
- nette/application: ^2.4.16 || ^3.0.7
- nette/bootstrap: ^2.4.6 || ^3.0
- nette/di: ^2.4.16 || ^3.0.5
- nette/safe-stream: ^2.4.1
- nette/security: ^2.4.4 || ^3.0.5
- nette/tester: ^2.3.3
- nette/utils: ^2.5.4 || ^3.1.3
Requires (Dev)
- kdyby/doctrine: ^3.1
- kdyby/doctrine-cache: ^2.5
- kdyby/doctrine-dbal-batchimport: dev-master
- kdyby/events: ^3.1
- latte/latte: ^2.5.3 || ^3.0
- nette/database: ^2.4 || ^3.0
- nette/forms: ^2.4.10 || ^3.0.2
- nette/robot-loader: ^2.4.4 || ^3.3.1
- nette/security: ^2.4.4
- nettrine/migrations: ^0.4
- php-parallel-lint/php-console-highlighter: ^0.5
- php-parallel-lint/php-parallel-lint: ^1.2
- phpstan/phpstan: ^0.12.52
- phpstan/phpstan-nette: ^0.12
- squizlabs/php_codesniffer: ^3.5.8
- tracy/tracy: ^2.6.5 || ^3.0
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
- nettrine/migrations: Migrate database to the fresh state
Conflicts
- doctrine/orm: >=2.7.3
Replaces
- mrtnzlml/testbench: >=2.4
This package is auto-updated.
Last update: 2024-09-04 17:21:04 UTC
README
针对PHP 7.4进行测试。请阅读此维基。
深受以下GitHub项目启发
以及文章
- Bootstrap your integration testing database (Jiří Pudil)
- Testování presenterů v Nette (Martin Zlámal)
Nette Framework项目的简单测试台
尽可能简单地进行集成测试。此项目帮助您快速编写测试。DRY!此项目的主要目标是使测试对每个人都非常简单,并帮助解决困难的开端。
您可以在本README中找到一些示例,或查看此项目中的tests
文件夹。
安装
$ composer require --dev nexendrie/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'); });
重要的是,我们在这里没有创建依赖注入容器。如果您不想使用机器人加载器,可以使用autoload从Composer中获取。您还应该创建一个配置文件,例如tests.neon
。此文件目前仅用于数据库测试。在此文件中,您应该在测试之前配置您的项目。
testbench: sqls: #what should be loaded after empty database creation - %appDir%/../sqls/1.sql - %appDir%/../sqls/2.sql
然后您就可以开始了
<?php 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
文件夹或维基中都有示例。学习如何使用这些特性