cuteninja / parabola-bundle
Cute-Ninja项目常用的代码处理API(ResponseBuilder、测试、...)
1.0.0
2016-04-28 14:30 UTC
Requires
- php: >=5.5.9
- friendsofsymfony/rest-bundle: ~1.4
- incenteev/composer-parameter-handler: ~2.0
- knplabs/knp-paginator-bundle: ~2.4
- sensio/distribution-bundle: ~3.0|~4.0|~5.0
- sensio/framework-extra-bundle: ~3.0
- symfony/monolog-bundle: ~2.4
- symfony/symfony: 2.6.*|2.8.*
Requires (Dev)
- behat/symfony2-extension: 2.1.*
- phpunit/phpunit: 4.8.*
- sensio/generator-bundle: ~2.3
This package is not auto-updated.
Last update: 2024-09-14 18:47:27 UTC
README
此扩展包提供处理Rest API的工具。它包括响应构建器(成功、服务器错误、客户端错误)和功能测试(使用Behat)。
配置
要使用“响应必须优化”,您需要在config_test.yml中启用分析器
profiler: enabled: true
并在实例化内核时启用调试
new \AppKernel('test', true);
并在您的parameters.yml中定义cute_ninja_parabola_allowed_origins,其中包含您的API的URL。此参数是一个数组,允许您有多个允许的源。
例如
cute_ninja_parabola_allowed_origins: - 'http://api.my-application.com'
要启用API包装并访问symfony2分析器的显示,请将以下内容添加到您的parameters.yml中
wrap_api_response: true
BaseContext
在您的项目中创建一个BaseContext,如下所示
use CuteNinja\ParabolaBundle\Tests\Feature\Context\BaseContext as ParabolaBaseContext; class BaseContext extends ParabolaBaseContext { }
数据库结构 & 数据
功能测试要求您生成数据库结构并用数据填充它。最好的方式是实现两个带有“@BeforeSuite”和“@AfterScenario @regenerateDB”注解的方法。为了优化数据库加载,我们生成在每个套件之前和在每个场景之后使用“@regenerateDB”的代码。这样,例如在List API测试之后,我们不会重新加载数据库,因为数据库内容没有发生变化。
use CuteNinja\ParabolaBundle\Tests\Feature\Context\BaseContext as ParabolaBaseContext; class BaseContext extends ParabolaBaseContext { /** * @BeforeSuite */ public static function beforeSuite() { // Implement your own DB structure and data logic } /** * @AfterScenario @regenerateDB */ public function regenerateDBAfterScenario() { // Implement your own DB structure and data logic } }
如果您想使用https://github.com/Cute-Ninja/memoria-bundle来处理数据库结构和数据,请将其添加到您的项目中并使用以下代码。
use CuteNinja\ParabolaBundle\Tests\Feature\Context\BaseContext as ParabolaBaseContext; class BaseContext extends ParabolaBaseContext { /** * @BeforeSuite */ public static function beforeSuite() { $process = new Process("php bin/console doctrine:schema:create --env=test"); $process->setTimeout(3600); $process->run(); $process = new Process("php bin/console cute_ninja:fixture:load --env=test"); $process->setTimeout(3600); $process->run(); } /** * @AfterScenario @regenerateDB */ public function regenerateDBAfterScenario() { $process = new Process("php bin/console doctrine:schema:drop --force --env=test"); $process->setTimeout(3600); $process->run(); $process = new Process("php bin/console doctrine:schema:create --env=test"); $process->setTimeout(3600); $process->run(); $process = new Process("php bin/console cute_ninja:fixture:load --env=test"); $process->setTimeout(3600); $process->run(); } }