ijvo / testbench
Nette 框架应用的单集成测试工具
Requires
- php: >=7.3
- ijvo/kdyby-fake-session: ^3.1
- nette/application: ^3.0
- nette/bootstrap: ^3.0
- nette/di: ^3.0
- nette/http: ^3.0
- nette/safe-stream: ^2.3
- nette/security: ^3.0
- nette/tester: ^2.2
- nette/utils: ^3.0 || ^4.0
Requires (Dev)
- ijvo/kdyby-doctrine: dev-master
- ijvo/nettrine-migrations: ^0.7
- kdyby/console: dev-master
- kdyby/doctrine-cache: ^3.0
- kdyby/doctrine-dbal-batchimport: dev-master
- kdyby/events: dev-master
- latte/latte: ^2.5 || ^3.0
- nette/database: ^3.0
- nette/forms: ^3.0
- nette/robot-loader: ^3.0
- nextras/dbal: ~3.0
- tracy/tracy: ^2.7
- v3.1.4
- v3.1.3
- v3.1.2
- dev-master / 3.1.1.x-dev
- v3.1.1
- v3.1.0
- v3.0.4
- v3.0.3
- v3.0.2
- v3.0.1
- v3.0.0
- v2.4.4
- v2.4.3
- v2.4.2.2
- v2.4.2.1
- v2.4.2
- v2.4.1
- v2.4
- v2.3.1
- v2.3
- v2.2.1
- v2.2
- v2.1.6
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0
- v2.0-rc.2
- v2.0-rc.1
- 1.2.1
- 1.2
- 1.1.1
- 1.1
- 1.0
- dev-ChPSR4
This package is auto-updated.
Last update: 2024-09-23 01:00:17 UTC
README
Testbench
从 https://github.com/mrtnzlml-archive/testbench 分支而来
Nette 3.0 更新
已测试 PHP 7.4。
请阅读 此维基百科。
深受以下 GitHub 项目的启发
以及文章
- 启动您的集成测试数据库 (Jiří Pudil)
- 在 Nette 中测试 presenter (本人)
Nette 框架项目的简单测试平台
尽可能简单地编写集成测试。此项目帮助您快速编写测试。DRY! 此项目的主要目标是使测试对每个人来说都非常简单,并帮助解决困难的起点。
您可以在本说明书中找到一些示例,或者查看本项目中的 tests
文件夹。
安装
$ composer require ijvo/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
文件夹或维基百科中都有示例。学习如何使用这些特性