braincrafted / testing-bundle
Symfony2扩展的测试工具
Requires
- php: >=5.3.3
- symfony/symfony: >=2.6
Requires (Dev)
- doctrine/data-fixtures: >=1.0-dev
- doctrine/doctrine-bundle: ~1.0
- doctrine/doctrine-fixtures-bundle: dev-master
- symfony/doctrine-bridge: 2.3.*
README
由维也纳的Florian Eckerstorfer精心打造 Florian Eckerstorfer.
关于
此包目前提供了一个抽象类,以更好地隔离Symfony2应用程序的功能测试。WebTestCase类删除模式,重新创建它并加载所有固定文件。目前DoctrineFixturesBundle是该包的必需依赖。
在某个时候,这个包可能包含与测试相关的其他有用类、服务和辅助工具。
安装
您需要将扩展添加到您的composer.json
文件中
{ "require-dev": { "braincrafted/testing-bundle": "@stable" } }
提示:您应该用特定的版本替换@stable
。
兼容性
TestingBundle是为始终与最新版本的Symfony一起工作而开发的。以下表格有助于您选择正确的TestingBundle版本。
主分支已更新,以兼容Symfony 2.3。如果您使用的是Symfony <2.3,则可以使用0.1
分支。
将包添加到您的内核中(仅在开发和测试环境中激活包,您不需要在生产环境中激活它)
// app/AppKernel.php class AppKernel extends Kernel { public function registerBundles() { // ... if (in_array($this->getEnvironment(), array('dev', 'test'))) { $bundles[] = new Braincrafted\Bundle\TestingBundle\BraincraftedTestingBundle($this); // ... } // ... } // ... }
用法
您想要隔离的测试用例必须扩展Braincrafted\Bundle\TestingBundle\Test\WebTestCase
。
// AcmeDemoBundle/Tests/DemoTest.php namespace AcmeDemoBundle\Tests; use Braincrafted\Bundle\TestingBundle\Test\WebTestCase; class DemoTest extends WebTestCase { // ... }
默认情况下,WebTestCase提供了一个setUp()
和tearDown()
方法,分别启动和关闭内核。但是,如果您的测试用例中有自己的setUp()
和/或tearDown()
方法,您需要手动执行此操作。
// AcmeDemoBundle/Tests/DemoTest.php namespace AcmeDemoBundle\Tests; use Braincrafted\Bundle\TestingBundle\Test\WebTestCase; class DemoTest extends WebTestCase { public function setUp() { $this->setUpKernel(); // ... } public function tearDown() { $this->tearDownKernel(); // ... } }
如果您的测试用例需要客户端,您可以使用createClient()
方法
$client = $this->createClient();
createClient()
将在此时没有内核可用时调用setUpKernel()
。
您还可以访问内核的依赖注入容器
$container = $this->getContainer();
渲染Crawler HTML
WebTestCase类还有一个非常有用的辅助方法,可以返回爬虫的HTML代码。您可以在所有继承自Braincrafted\Bundle\TestingBundle\Test\WebTestCase
的测试用例中使用它。
echo $this->renderCrawlerHtml($crawler);
测试翻译键
BraincraftedTestingBundle
安装了一个替代翻译器,仅在test
环境中激活。此翻译器返回翻译键而不是翻译后的文本。这样,您可以在功能测试中使用翻译键而不是翻译后的文本。
变更日志
版本 0.4.2 (2016年2月15日)
NoTranslator
实现了空的setConfigCacheFactory()
方法以提高兼容性
版本 0.4.1 (2015年4月20日)
NoTranslator
返回消息目录
版本 0.4 (2015年2月6日)
- 添加了对Symfony 2.6的兼容性
版本 0.3.3 (2015年2月6日)
- 更新到
composer.json
以反映0.3
分支与Symfony 2.6不兼容
版本 0.3.2 (2014年10月26日)
- #10 尝试在标准路径中找到
AppKernel.php
,然后再回退到KERNEL_DIR
常量(由florianeckerstorfer提供)
版本 0.3.1 (2014年8月25日)
- 修复了
WebTestCase::createClient()
方法的类型提示 - 在
WebTestCase::createClient()
中传递$options
到WebTestCase::createKernel()
版本 0.3 (2013年11月18日)
- 将命名空间更改为
Braincrafted
。
许可证
MIT许可(MIT)
版权所有(c)2012-2015 弗洛里安·埃克斯特罗费尔
特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人,免费、不可撤销地使用该软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许获得软件的人进行上述操作,但必须遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权或其他原因,以及软件的使用或其他方式。